diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2008-05-30 12:27:19 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2008-05-30 12:27:19 +0000 |
| commit | 0cb6393b5417a4e490c4ec42f7ba96b4d1e14f71 (patch) | |
| tree | 89ae6e5476b4d1b50d31b0a1d1bf1bed939fd43e | |
| parent | 5bec6d0289eb4263f79a1fa1e3ca6f8027740983 (diff) | |
Notes
| -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 3e4d7fd32cc7..b25f3b575cf4 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; |
