/* vnode */
#define SetAfsVnode(vn) /* nothing; done in getnewvnode() */
#define IsAfsVnode(vn) ((vn)->v_op == afs_vnodeop_p)
-#define AFS_HOLD(vp) afs_nbsd_ref(vp)
-#define AFS_RELE(vp) afs_nbsd_rele(vp)
-#define VN_HOLD(vp) afs_vget((vp), 0)
+#define VN_HOLD(vp) VREF(vp)
+#define VN_RELE(vp) vrele(vp)
#define osi_vnhold(avc, r) afs_vget(AFSTOV(avc), 0)
#define va_nodeid va_fileid
#define vnode_t struct vnode
int followlink, struct vnode **dirvpp,
struct vnode **compvpp);
extern void afs_nbsd_getnewvnode(struct vcache *tvc);
-extern void afs_nbsd_ref(struct vnode *);
-extern void afs_nbsd_rele(struct vnode *);
extern void *afs_nbsd_Alloc(size_t asize);
extern void afs_nbsd_Free(void *p, size_t asize);
extern int afs_vget();
AFS_RELE(AFSTOV(afs_globalVp));
#endif
afs_globalVp = tvp;
- AFS_HOLD(AFSTOV(afs_globalVp));
+ VREF(AFSTOV(afs_globalVp));
}
AFSTOV(tvp)->v_flag |= VROOT;
afs_globalVFS = mp;
return 0;
}
-void
-afs_nbsd_ref(struct vnode *vp)
-{
- if (vp->v_usecount == 0) {
- vprint("holding unheld node", vp);
- panic("afs_ref");
- }
- VREF(vp);
-}
-
-void
-afs_nbsd_rele(struct vnode *vp)
-{
- AFS_GUNLOCK();
- if (vp->v_usecount <= 0) {
- vprint("rele'ing unheld node", vp);
- panic("afs_rele");
- }
- vrele(vp);
- AFS_GLOCK();
-}
-
int
afs_vget(vp, lfl)
struct vnode *vp;
int afs_debug;
-#undef vrele
-#define vrele afs_nbsd_rele
-#undef VREF
-#define VREF afs_nbsd_ref
-
int
afs_nbsd_lookup(ap)
struct vop_lookup_args /* {
#ifdef AFS_DEC_ENV
avc->vrefCount++;
#else
-#if defined(AFS_NETBSD_ENV) || defined(AFS_OBSD_ENV)
- AFS_HOLD(AFSTOV(avc));
-#else
VN_HOLD(AFSTOV(avc));
#endif
-#endif
}
tb->refCount = ause + 1;
tb->size_parm[0] = asparm0;
#define USERPRI
#endif
-#ifndef AFS_OBSD_ENV
/*
* vnode/vcache ref count manipulation
*/
#else /* defined(UKERNEL) */
#define AFS_RELE(vp) do { AFS_GUNLOCK(); VN_RELE(vp); AFS_GLOCK(); } while (0)
#endif /* defined(UKERNEL) */
-#endif
/*
* For some reason we do bare refcount manipulation in some places, for some