Changeset View
Changeset View
Standalone View
Standalone View
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
Show First 20 Lines • Show All 1,210 Lines • ▼ Show 20 Lines | if (hdl != NULL) { | ||||
if (err) { | if (err) { | ||||
getnewvnode_drop_reserve(); | getnewvnode_drop_reserve(); | ||||
return (err); | return (err); | ||||
} | } | ||||
locked = VOP_ISLOCKED(vp); | locked = VOP_ISLOCKED(vp); | ||||
VI_LOCK(vp); | VI_LOCK(vp); | ||||
if ((vp->v_iflag & VI_DOOMED) != 0 && | if (VN_IS_DOOMED(vp) && locked != LK_EXCLUSIVE) { | ||||
locked != LK_EXCLUSIVE) { | |||||
/* | /* | ||||
* The vnode is doomed and this thread doesn't | * The vnode is doomed and this thread doesn't | ||||
* hold the exclusive lock on it, so the vnode | * hold the exclusive lock on it, so the vnode | ||||
* must be being reclaimed by another thread. | * must be being reclaimed by another thread. | ||||
* Otherwise the doomed vnode is being reclaimed | * Otherwise the doomed vnode is being reclaimed | ||||
* by this thread and zfs_zget is called from | * by this thread and zfs_zget is called from | ||||
* ZIL internals. | * ZIL internals. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 1,081 Lines • Show Last 20 Lines |