mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-02 12:20:51 +00:00
dbfcf8cfea
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 |
||
---|---|---|
.. | ||
ecma167-udf.h | ||
osta.c | ||
osta.h | ||
udf_iconv.c | ||
udf_mount.h | ||
udf_vfsops.c | ||
udf_vnops.c | ||
udf.h |