Fix a bug in r214049. The nvp == vp case shall be handled specially
only for !usevget case. If VFS_VGET is working, the vnode shared lock is obtained recursively and vput() shall be done, not vunref(). Submitted by: rmacklem Tested by: Josh Carroll <josh.carroll gmail com> MFC after: 3 days
This commit is contained in:
parent
e7bb9ab605
commit
fc79a404dd
@ -3252,7 +3252,7 @@ nfsrv_readdirplus(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
|
||||
nfhp->fh_fsid = nvp->v_mount->mnt_stat.f_fsid;
|
||||
if ((error1 = VOP_VPTOFH(nvp, &nfhp->fh_fid)) == 0)
|
||||
error1 = VOP_GETATTR(nvp, vap, cred);
|
||||
if (vp == nvp)
|
||||
if (!usevget && vp == nvp)
|
||||
vunref(nvp);
|
||||
else
|
||||
vput(nvp);
|
||||
|
Loading…
Reference in New Issue
Block a user