From afab3762a03836a33f6a8bd19afdb3d9559e12ec Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 13 Apr 2005 10:59:09 +0000 Subject: - 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. --- sys/fs/smbfs/smbfs_vnops.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'sys/fs/smbfs') 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); -- cgit v1.1