summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver/nfs_serv.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2008-05-28 16:23:17 +0000
committerkib <kib@FreeBSD.org>2008-05-28 16:23:17 +0000
commitf4b9bd396a2fa94179dafc46694212d8e55148e3 (patch)
tree9cebd8e35b9b64a5d96e741a919a6581c3ba48cf /sys/nfsserver/nfs_serv.c
parent2e00a34c1d8f3c9e2d57678d8ba231a2fa99bb7e (diff)
downloadFreeBSD-src-f4b9bd396a2fa94179dafc46694212d8e55148e3.zip
FreeBSD-src-f4b9bd396a2fa94179dafc46694212d8e55148e3.tar.gz
Change the fix in the rev. 1.179 to use nfsrv_lockedpair_nd().
Tested by: pho MFC after: 3 days
Diffstat (limited to 'sys/nfsserver/nfs_serv.c')
-rw-r--r--sys/nfsserver/nfs_serv.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/sys/nfsserver/nfs_serv.c b/sys/nfsserver/nfs_serv.c
index 91d71e3..10efe55 100644
--- a/sys/nfsserver/nfs_serv.c
+++ b/sys/nfsserver/nfs_serv.c
@@ -2148,7 +2148,7 @@ nfsrv_remove(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
nfsfh_t nfh;
fhandle_t *fhp;
struct mount *mp = NULL;
- int vfslocked, vfslocked1;
+ int vfslocked;
nfsdbprintf(("%s %d\n", __FILE__, __LINE__));
ndclear(&nd);
@@ -2170,11 +2170,7 @@ nfsrv_remove(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | MPSAFE;
error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos,
&dirp, v3, &dirfor, &dirfor_ret, td, FALSE);
- vfslocked1 = NDHASGIANT(&nd);
- if (vfslocked && vfslocked1)
- VFS_UNLOCK_GIANT(vfslocked1);
- if (vfslocked || vfslocked1)
- vfslocked = 1;
+ vfslocked = nfsrv_lockedpair_nd(vfslocked, &nd);
if (dirp && !v3) {
vrele(dirp);
dirp = NULL;
OpenPOWER on IntegriCloud