diff options
author | kib <kib@FreeBSD.org> | 2008-05-28 16:23:17 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2008-05-28 16:23:17 +0000 |
commit | f4b9bd396a2fa94179dafc46694212d8e55148e3 (patch) | |
tree | 9cebd8e35b9b64a5d96e741a919a6581c3ba48cf /sys/nfsserver | |
parent | 2e00a34c1d8f3c9e2d57678d8ba231a2fa99bb7e (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/nfsserver/nfs_serv.c | 8 |
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; |