diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2013-04-16 14:22:16 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2013-04-16 14:22:16 +0000 |
commit | 90b89365fd2130fd73f9b1e2c3af63c35ce2a3d1 (patch) | |
tree | ad72dba4198d7f6b8a52a8a510da04bcec6c7b04 /sys/kern | |
parent | a87381e5204c834c80ba1a56f5a6cc1fda18ad95 (diff) | |
download | FreeBSD-src-90b89365fd2130fd73f9b1e2c3af63c35ce2a3d1.zip FreeBSD-src-90b89365fd2130fd73f9b1e2c3af63c35ce2a3d1.tar.gz |
Allow the vnode to be unlocked for the weird case of
LK_EXCLOTHER. LK_EXCLOTHER is only used to acquire a
usecount on a vnode during NFSv4 recovery from an
expired lease.
Reported and tested by: pho
MFC after: 2 weeks
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/vfs_subr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index a303fe6..9a27ae7 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -4123,7 +4123,7 @@ vop_lock_post(void *ap, int rc) struct vop_lock1_args *a = ap; ASSERT_VI_UNLOCKED(a->a_vp, "VOP_LOCK"); - if (rc == 0) + if (rc == 0 && (a->a_flags & LK_EXCLOTHER) == 0) ASSERT_VOP_LOCKED(a->a_vp, "VOP_LOCK"); #endif } |