cache: use vrefact for '.' lookups and refing the rdir in fullpath

This commit is contained in:
Mateusz Guzik 2017-01-30 03:20:05 +00:00
parent 3071469d57
commit dfecf51dd0
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=312981

View File

@ -1124,7 +1124,7 @@ cache_lookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp,
timespecclear(tsp);
if (ticksp != NULL)
*ticksp = ticks;
VREF(*vpp);
vrefact(*vpp);
/*
* When we lookup "." we still can be asked to lock it
* differently...
@ -2115,7 +2115,7 @@ vn_fullpath(struct thread *td, struct vnode *vn, char **retbuf, char **freebuf)
fdp = td->td_proc->p_fd;
FILEDESC_SLOCK(fdp);
rdir = fdp->fd_rdir;
VREF(rdir);
vrefact(rdir);
FILEDESC_SUNLOCK(fdp);
error = vn_fullpath1(td, vn, rdir, buf, retbuf, MAXPATHLEN);
vrele(rdir);