summaryrefslogtreecommitdiffstats
path: root/sys/fs/nfsserver/nfs_nfsdsocket.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/nfsserver/nfs_nfsdsocket.c')
-rw-r--r--sys/fs/nfsserver/nfs_nfsdsocket.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/fs/nfsserver/nfs_nfsdsocket.c b/sys/fs/nfsserver/nfs_nfsdsocket.c
index fb6a87c..68cc05a 100644
--- a/sys/fs/nfsserver/nfs_nfsdsocket.c
+++ b/sys/fs/nfsserver/nfs_nfsdsocket.c
@@ -861,10 +861,14 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram,
nfsvno_lockvfs(mp);
}
}
+ if (op == NFSV4OP_LOOKUP || op == NFSV4OP_LOOKUPP)
+ /* Lookup ops return a locked vnode */
+ VOP_UNLOCK(nvp, 0);
if (!nd->nd_repstat) {
vrele(vp);
vp = nvp;
- }
+ } else
+ vrele(nvp);
}
if (nfsv4_opflag[op].modifyfs)
NFS_ENDWRITE(mp);
OpenPOWER on IntegriCloud