Correct the vnode locking in fdescfs.

PR:		kern/93905
Submitted by:	Kostik Belousov <kostikbel@gmail.com>
Reviewed by:	jeff
MFC After:	1 week
This commit is contained in:
Kris Kennaway 2006-02-28 00:05:44 +00:00
parent 493be2ca17
commit 7d65872fff
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=156095

View file

@ -193,11 +193,9 @@ fdesc_lookup(ap)
goto bad;
}
VOP_UNLOCK(dvp, 0, td);
if (cnp->cn_namelen == 1 && *pname == '.') {
*vpp = dvp;
VREF(dvp);
vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td);
return (0);
}
@ -228,12 +226,12 @@ fdesc_lookup(ap)
if (error)
goto bad;
VTOFDESC(fvp)->fd_fd = fd;
if (fvp != dvp)
vn_lock(fvp, LK_EXCLUSIVE | LK_RETRY, td);
*vpp = fvp;
return (0);
bad:
vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td);
*vpp = NULL;
return (error);
}