- We do not have to check the object's ref_count in VSHOULDFREE or

vtryrecycle().  All obj refs also ref the vnode.
 - Consistently use v_incr_usecount() to increment the usecount.  This will
   be more important later.

Sponsored by:	Isilon Systems, Inc.
This commit is contained in:
Jeff Roberson 2005-03-14 08:30:31 +00:00
parent 8cb809ea3f
commit 159b454819
2 changed files with 4 additions and 4 deletions

View File

@ -92,6 +92,7 @@ static void vbusy(struct vnode *vp);
static void vdropl(struct vnode *vp);
static void vholdl(struct vnode *);
static void vinactive(struct vnode *, struct thread *);
static void v_incr_usecount(struct vnode *, int);
/*
* Enable Giant pushdown based on whether or not the vm is mpsafe in this
@ -683,8 +684,7 @@ vtryrecycle(struct vnode *vp)
object = vp->v_object;
if (object != NULL) {
VM_OBJECT_LOCK(object);
if (object->resident_page_count ||
object->ref_count) {
if (object->resident_page_count) {
VM_OBJECT_UNLOCK(object);
error = EBUSY;
goto done;
@ -893,7 +893,7 @@ getnewvnode(tag, mp, vops, vpp)
vp->v_tag = tag;
vp->v_op = vops;
*vpp = vp;
vp->v_usecount = 1;
v_incr_usecount(vp, 1);
vp->v_data = 0;
if (pollinfo != NULL) {
knlist_destroy(&pollinfo->vpi_selinfo.si_note);

View File

@ -395,7 +395,7 @@ extern void (*lease_updatetime)(int deltat);
(!((vp)->v_iflag & VI_FREE) && \
!(vp)->v_holdcnt && !(vp)->v_usecount && \
(!(vp)->v_object || \
!((vp)->v_object->ref_count || (vp)->v_object->resident_page_count)))
!(vp)->v_object->resident_page_count))
/* Requires interlock. */
#define VSHOULDBUSY(vp) \