History log of /freebsd-10-stable/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
Revision Date Author Comments
# 328048 16-Jan-2018 avg

MFC r327725: zfs_mount: restore a bit of ifdef-out illumos code


# 315844 23-Mar-2017 avg

MFC r314048,r314194: reimplement zfsctl (.zfs) support


# 310514 24-Dec-2016 avg

MFC r309099: MFV r308990: 7181 race between zfs_mount and zfs_ioc_rollback


# 310510 24-Dec-2016 avg

MFC r309097: MFV r308987: 7180 potential race between
zfs_suspend_fs+zfs_resume_fs and zfs_ioc_rename


# 307122 11-Oct-2016 mav

MFC r305209: MFV r302660: 6314 buffer overflow in dsl_dataset_name

illumos/illumos-gate@9adfa60d484ce2435f5af77cc99dcd4e692b6660
https://github.com/illumos/illumos-gate/commit/9adfa60d484ce2435f5af77cc99dcd4e6
92b6660

https://www.illumos.org/issues/6314
Callers of dsl_dataset_name pass a buffer of size ZFS_MAXNAMELEN, but
dsl_dataset_name copies the datasets' name PLUS the snapshot name to it,
resulting in a max of 2 * ZFS_MAXNAMELEN + '@'.

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Author: Matthew Ahrens <mahrens@delphix.com>


# 304671 23-Aug-2016 avg

MFC r303763,303791,303869: zfs: honour and make use of vfs vnode locking protocol

PR: 209158


# 304135 15-Aug-2016 avg

MFC r302836: 6874 rollback and receive need to reset ZPL state to what's on disk


# 302740 13-Jul-2016 avg

MFC r301273: zfs_root: fix a potential root vnode reference leak


# 302738 13-Jul-2016 avg

MFC r299908,300131,301275: zfs: set VROOT / VV_ROOT consistently and in
a single place


# 302724 13-Jul-2016 avg

MFC r299900: zfsctl: fix several problems with reference counts

PR: 207464


# 302721 13-Jul-2016 avg

MFC r298105: zfs: enable vn_io_fault support


# 297112 20-Mar-2016 mav

MFC r296519: MFV r296518: 5027 zfs large block support (add copyright)

Author: Matthew Ahrens <matt@mahrens.org>

illumos/illumos-gate@c3d26abc9ee97b4f60233556aadeb57e0bd30bb9


# 297082 20-Mar-2016 mav

MFC r272359 (by will):
zfsvfs_create(): Refuse to mount datasets whose names are too long.

This is checked for in the zfs_snapshot_004_neg STF/ATF test (currently
still in projects/zfsd rather than head).

sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c:
- zfsvfs_create(): Check whether the objset name fits into
statfs.f_mntfromname, and return ENAMETOOLONG if not. Although
the filesystem can be unmounted via the umount(8) command, any
interface that relies on iterating on statfs (e.g. libzfs) will
fail to find the filesystem by its objset name, and thus assume
it's not mounted. This causes "zfs unmount", "zfs destroy",
etc. to fail on these filesystems, whether or not -f is passed.

MFSpectraBSD: 974872 on 2013/08/09


# 297081 20-Mar-2016 mav

MFC r277503 (by will): Ignore sync requests from the system syncher,
i.e. VFS_SYNC(waitfor=MNT_LAZY).

ZFS already commits outstanding data every zfs_txg_timeout seconds, so these
syncs are unnecessarily intrusive.

MFSpectraBSD: 1105759 on 2014/12/11


# 297077 20-Mar-2016 mav

MFC r277300 (by smh): Mechanically convert cddl sun #ifdef's to illumos

Since the upstream for cddl code is now illumos not sun, mechanically
convert all sun #ifdef's to illumos #ifdef's which have been used in all
newer code for some time.

Also do a manual pass to correct the use if #ifdef comments as per style(9)
as well as few uses of #if defined(__FreeBSD__) vs #ifndef illumos.


# 289100 09-Oct-2015 delphij

MFC r288204: MFV r288063:

make dataset property de-registration operation O(1)


# 289100 09-Oct-2015 delphij

MFC r288204: MFV r288063:

make dataset property de-registration operation O(1)


# 288571 03-Oct-2015 mav

MFC r286705: 5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Author: Paul Dagnelie <pcd@delphix.com>

While running 'zfs recv' we noticed that every 128th 8K block required a
read. We were seeing that restore_write() was calling dmu_tx_hold_write()
and the indirect block was not cached. We should prefetch upcoming indirect
blocks to avoid having to go to disk and blocking the restore_write().

Allow an incremental send stream to be received as a clone, even if the
stream does not mark it as a clone.


# 287661 11-Sep-2015 avg

MFC r285021: zfs_mount(MS_REMOUNT): protect zfs_(un)register_callbacks calls


# 287658 11-Sep-2015 avg

MFC r286985: try to fix lor between z_teardown_lock and spa_namespace_lock


# 284203 10-Jun-2015 kib

MFC r283602:
Prevent dounmount() from acting on the freed (although type-stable)
memory by changing the interface to require the mount point to be
referenced.

MFC r283629:
Add missed {}.


# 283522 25-May-2015 avg

MFC r282475: zfs: do not hold an extra reference on a root vnode


# 276081 22-Dec-2014 delphij

MFC r274337,r274673,274681,r275515:

ZFS large block support. The default recordsize remains at 128KB.

A new tunable/sysctl variable, vfs.zfs.max_recordsize is added to
allow adjusting the permitted maximum record size, or
zfs_max_recordsize, with a default of 1MB. ZFS will not allow
setting recordsize greater than zfs_max_recordsize as a safety
belt, because larger recordsize means greater read and write
latency and more memory usage.

Please note that booting from datasets that have recordsize greater
than 128KB is not supported (but it's Okay to enable the feature on
the pool).

Limited safety belt is provided for mounted root filesystem but use
caution when using a larger value.

Illumos issue:
5027 zfs large block support


# 271001 03-Sep-2014 delphij

MFC r270247: MFV r270195:

Illumos issue:
5045 use atomic_{inc,dec}_* instead of atomic_add_*


# 269494 03-Aug-2014 kib

MFC r269189:
Initialize zfs vnode v_hash when the vnode is allocated.


# 269419 02-Aug-2014 delphij

MFC r268865: MFV r268852:

Reduce lock contention on the z_teardown_lock under heavily cached
read workload by splitting the single teardown rrw lock into
RRM_NUM_LOCKS (17) of them.

Read acquisitions are randomly distributed among these locks based
on curthread pointer. Write acquisitions are going to all the
locks, which for the usage of this type of lock should be rare.

Illumos issue:
5008 lock contention (rrw_exit) while running a read only load


# 288571 03-Oct-2015 mav

MFC r286705: 5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Author: Paul Dagnelie <pcd@delphix.com>

While running 'zfs recv' we noticed that every 128th 8K block required a
read. We were seeing that restore_write() was calling dmu_tx_hold_write()
and the indirect block was not cached. We should prefetch upcoming indirect
blocks to avoid having to go to disk and blocking the restore_write().

Allow an incremental send stream to be received as a clone, even if the
stream does not mark it as a clone.


# 287661 11-Sep-2015 avg

MFC r285021: zfs_mount(MS_REMOUNT): protect zfs_(un)register_callbacks calls


# 287658 11-Sep-2015 avg

MFC r286985: try to fix lor between z_teardown_lock and spa_namespace_lock


# 284203 10-Jun-2015 kib

MFC r283602:
Prevent dounmount() from acting on the freed (although type-stable)
memory by changing the interface to require the mount point to be
referenced.

MFC r283629:
Add missed {}.


# 283522 25-May-2015 avg

MFC r282475: zfs: do not hold an extra reference on a root vnode


# 276081 22-Dec-2014 delphij

MFC r274337,r274673,274681,r275515:

ZFS large block support. The default recordsize remains at 128KB.

A new tunable/sysctl variable, vfs.zfs.max_recordsize is added to
allow adjusting the permitted maximum record size, or
zfs_max_recordsize, with a default of 1MB. ZFS will not allow
setting recordsize greater than zfs_max_recordsize as a safety
belt, because larger recordsize means greater read and write
latency and more memory usage.

Please note that booting from datasets that have recordsize greater
than 128KB is not supported (but it's Okay to enable the feature on
the pool).

Limited safety belt is provided for mounted root filesystem but use
caution when using a larger value.

Illumos issue:
5027 zfs large block support


# 271001 03-Sep-2014 delphij

MFC r270247: MFV r270195:

Illumos issue:
5045 use atomic_{inc,dec}_* instead of atomic_add_*


# 269494 03-Aug-2014 kib

MFC r269189:
Initialize zfs vnode v_hash when the vnode is allocated.


# 269419 02-Aug-2014 delphij

MFC r268865: MFV r268852:

Reduce lock contention on the z_teardown_lock under heavily cached
read workload by splitting the single teardown rrw lock into
RRM_NUM_LOCKS (17) of them.

Read acquisitions are randomly distributed among these locks based
on curthread pointer. Write acquisitions are going to all the
locks, which for the usage of this type of lock should be rare.

Illumos issue:
5008 lock contention (rrw_exit) while running a read only load