summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortruckman <truckman@FreeBSD.org>2004-01-11 23:44:32 +0000
committertruckman <truckman@FreeBSD.org>2004-01-11 23:44:32 +0000
commit5be717c021102b66a0b387a4993588e2852c371f (patch)
tree15fe7f0dce37d849325a1d33312bd8a62376d145
parentd6c015472804fd004386a182a3fb3be3384d4ad2 (diff)
downloadFreeBSD-src-5be717c021102b66a0b387a4993588e2852c371f.zip
FreeBSD-src-5be717c021102b66a0b387a4993588e2852c371f.tar.gz
Don't try to unlock the directory vnode in null_lookup() if the lock is
shared with the underlying file system and the lookup in the underlying file system did the unlock for us.
-rw-r--r--sys/fs/nullfs/null_vnops.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/fs/nullfs/null_vnops.c b/sys/fs/nullfs/null_vnops.c
index c4d6f00f..c528a13 100644
--- a/sys/fs/nullfs/null_vnops.c
+++ b/sys/fs/nullfs/null_vnops.c
@@ -392,7 +392,7 @@ null_lookup(ap)
* Rely only on the PDIRUNLOCK flag which should be carefully
* tracked by underlying filesystem.
*/
- if (cnp->cn_flags & PDIRUNLOCK)
+ if ((cnp->cn_flags & PDIRUNLOCK) && dvp->v_vnlock != ldvp->v_vnlock)
VOP_UNLOCK(dvp, LK_THISLAYER, td);
if ((error == 0 || error == EJUSTRETURN) && lvp != NULL) {
if (ldvp == lvp) {
OpenPOWER on IntegriCloud