freebsd-dev/sys/cddl
Will Andrews 58567a1b4e ZFS: Fix a panic while unmounting a busy filesystem.
This particular scenario was easily reproduced using a NFS export.  When the
first 'zfs unmount' occurred, it returned EBUSY via this path, while
vflush() had flushed references on the filesystem's root vnode, which in
turn caused its v_interlock to be destroyed.  The next time 'zfs unmount'
was called, vflush() tried to obtain this lock, which caused this panic.

Since vflush() on FreeBSD is a definitive call, there is no need to check
vfsp->vfs_count after it completes.  Simply #ifdef sun this check.

Submitted by:	avg
Reviewed by:	avg
Approved by:	ken (mentor)
MFC after:	1 month
2013-03-23 16:34:56 +00:00
..
boot/zfs MFV r245512: 2013-02-09 06:39:28 +00:00
compat/opensolaris TRIM cache devices based on time instead of TXGs. 2013-03-21 10:29:05 +00:00
contrib/opensolaris ZFS: Fix a panic while unmounting a busy filesystem. 2013-03-23 16:34:56 +00:00
dev fbt_getargdesc: correctly handle types for return probes 2013-03-23 08:52:50 +00:00