freebsd-dev/sys/cddl/contrib/opensolaris
John Baldwin dbfcf8cfea When the MNTK_EXTENDED_SHARED mount option was added, some filesystems were
changed to defer the setting of VN_LOCK_ASHARE() (which clears LK_NOSHARE
in the vnode lock's flags) until after they had determined if the vnode was
a FIFO.  This occurs after the vnode has been inserted a VFS hash or some
similar table, so it is possible for another thread to find this vnode via
vget() on an i-node number and block on the vnode lock.  If the lockmgr
interlock (vnode interlock for vnode locks) is not held when clearing the
LK_NOSHARE flag, then the lk_flags field can be clobbered.  As a result
the thread blocked on the vnode lock may never get woken up.  Fix this by
holding the vnode interlock while modifying the lock flags in this case.

MFC after:	3 days
2010-07-16 19:20:20 +00:00
..
common Merge ZFS version 15 and almost all OpenSolaris bugfixes referenced 2010-07-12 23:49:04 +00:00
uts When the MNTK_EXTENDED_SHARED mount option was added, some filesystems were 2010-07-16 19:20:20 +00:00
OPENSOLARIS.LICENSE Now that we have CDDLed code in the tree, add CDDL license. 2007-09-23 07:04:50 +00:00