From 2a81e8df21b1d63b9464460805910362704b6076 Mon Sep 17 00:00:00 2001 From: jeff Date: Mon, 14 Mar 2005 08:30:31 +0000 Subject: - 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. --- sys/kern/vfs_subr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'sys/kern/vfs_subr.c') diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index fa0a62e..97a52e4 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -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); -- cgit v1.1