summaryrefslogtreecommitdiff
path: root/sys/kern/vfs_lookup.c
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2005-08-14 18:10:04 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2005-08-14 18:10:04 +0000
commit0c207975f294cfc5c489b628ad1228aaf29f587a (patch)
treeefb3da5b3985383cc20d6366c1e35691d9243850 /sys/kern/vfs_lookup.c
parentb12cfed25c0f3d78c19f822b53d0c11afbc07233 (diff)
Notes
Diffstat (limited to 'sys/kern/vfs_lookup.c')
-rw-r--r--sys/kern/vfs_lookup.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c
index 078fc10cc6e8..19dac650e751 100644
--- a/sys/kern/vfs_lookup.c
+++ b/sys/kern/vfs_lookup.c
@@ -617,7 +617,9 @@ unionlookup:
tvfslocked = VFS_LOCK_GIANT(mp);
VFS_UNLOCK_GIANT(vfslocked);
vfslocked = tvfslocked;
+ VOP_UNLOCK(ndp->ni_dvp, 0, td);
error = VFS_ROOT(mp, cnp->cn_lkflags, &tdp, td);
+ VOP_LOCK(ndp->ni_dvp, cnp->cn_lkflags | LK_RETRY, td);
vfs_unbusy(mp, td);
if (error) {
dpunlocked = 1;