From: Jim Rees Date: Thu, 25 Mar 2004 17:04:44 +0000 (+0000) Subject: openbsd-20040325 X-Git-Tag: openafs-devel-1_3_63~42 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=02991c3b70950049a157231df29cdf6669095e50;p=packages%2Fo%2Fopenafs.git openbsd-20040325 go back to using afs_vget instead of VREF for VN_HOLD in afs_vget, only insert vnode in mount queue if it came off freelist --- diff --git a/src/afs/OBSD/osi_machdep.h b/src/afs/OBSD/osi_machdep.h index 68acc513e..4c456271a 100644 --- a/src/afs/OBSD/osi_machdep.h +++ b/src/afs/OBSD/osi_machdep.h @@ -41,8 +41,8 @@ extern struct simplelock afs_rxglobal_lock; /* vnode */ #define SetAfsVnode(vn) /* nothing; done in getnewvnode() */ -#define IsAfsVnode(vn) ((vn)->v_op == afs_vnodeop_p) -#define VN_HOLD(vp) VREF(vp) +#define IsAfsVnode(vn) ((vn)->v_op == afs_vnodeop_p) +#define VN_HOLD(vp) afs_vget((vp), 0) #define VN_RELE(vp) vrele(vp) #define osi_vnhold(avc, r) afs_vget(AFSTOV(avc), 0) #define va_nodeid va_fileid diff --git a/src/afs/OBSD/osi_vfsops.c b/src/afs/OBSD/osi_vfsops.c index 5b34edb7f..c0595152a 100644 --- a/src/afs/OBSD/osi_vfsops.c +++ b/src/afs/OBSD/osi_vfsops.c @@ -405,8 +405,10 @@ afs_vget(vp, lfl) panic("afs_vget"); } error = vget(vp, lfl, curproc); - if (!error) - insmntque(vp, afs_globalVFS); /* take off free list */ + if (!error && vp->v_usecount == 1) { + /* vget() took it off the freelist; put it on our mount queue */ + insmntque(vp, afs_globalVFS); + } return error; }