summaryrefslogtreecommitdiffstats
path: root/sys/fs/smbfs
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2005-04-13 10:59:09 +0000
committerjeff <jeff@FreeBSD.org>2005-04-13 10:59:09 +0000
commitafab3762a03836a33f6a8bd19afdb3d9559e12ec (patch)
treed93f4bc84645fcd224218d7e1c19b2f6b18a4c6c /sys/fs/smbfs
parent5642885b84d3a8dfdbf202dfbab02e5c4a93576f (diff)
downloadFreeBSD-src-afab3762a03836a33f6a8bd19afdb3d9559e12ec.zip
FreeBSD-src-afab3762a03836a33f6a8bd19afdb3d9559e12ec.tar.gz
- Change all filesystems and vfs_cache to relock the dvp once the child is
locked in the ISDOTDOT case. Se vfs_lookup.c r1.79 for details. Sponsored by: Isilon Systems, Inc.
Diffstat (limited to 'sys/fs/smbfs')
-rw-r--r--sys/fs/smbfs/smbfs_vnops.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/sys/fs/smbfs/smbfs_vnops.c b/sys/fs/smbfs/smbfs_vnops.c
index 268e5f8..d741c06 100644
--- a/sys/fs/smbfs/smbfs_vnops.c
+++ b/sys/fs/smbfs/smbfs_vnops.c
@@ -1155,9 +1155,6 @@ smbfs_lookup(ap)
vput(vp);
else
vrele(vp);
- if (flags & ISDOTDOT)
- if (vn_lock(dvp, LK_EXCLUSIVE, td))
- panic("smbfs_lookup: Can't relock directory.");
*vpp = NULLVP;
}
/*
@@ -1229,10 +1226,9 @@ smbfs_lookup(ap)
if (flags & ISDOTDOT) {
VOP_UNLOCK(dvp, 0, td);
error = smbfs_nget(mp, dvp, name, nmlen, NULL, &vp);
- if (error) {
- vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td);
+ vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td);
+ if (error)
return error;
- }
*vpp = vp;
} else if (isdot) {
vref(dvp);
OpenPOWER on IntegriCloud