diff options
author | Jeff Roberson <jeff@FreeBSD.org> | 2008-03-29 07:06:13 +0000 |
---|---|---|
committer | Jeff Roberson <jeff@FreeBSD.org> | 2008-03-29 07:06:13 +0000 |
commit | 52481a9a9d5d6b8482b28d93fa646fef5df80601 (patch) | |
tree | 5d634998b0cd77b0387b3d371c2b7270573f2092 /sys/vm/vm_object.c | |
parent | 5c643ed000ac392a7b98558ee8f4340c5e60ca8c (diff) | |
download | src-52481a9a9d5d6b8482b28d93fa646fef5df80601.tar.gz src-52481a9a9d5d6b8482b28d93fa646fef5df80601.zip |
- Use vm_object_reference_locked() directly from
vm_object_reference(). This is intended to get rid of vget()
consumers who don't wish to acquire a lock. This is functionally
the same as calling vref(). vm_object_reference_locked() already
uses vref.
Discussed with: alc
Notes
Notes:
svn path=/head/; revision=177704
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r-- | sys/vm/vm_object.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index a8ed619405b7..041b2890f3d6 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -364,22 +364,11 @@ vm_object_allocate(objtype_t type, vm_pindex_t size) void vm_object_reference(vm_object_t object) { - struct vnode *vp; - if (object == NULL) return; VM_OBJECT_LOCK(object); - object->ref_count++; - if (object->type == OBJT_VNODE) { - int vfslocked; - - vp = object->handle; - VM_OBJECT_UNLOCK(object); - vfslocked = VFS_LOCK_GIANT(vp->v_mount); - vget(vp, LK_RETRY, curthread); - VFS_UNLOCK_GIANT(vfslocked); - } else - VM_OBJECT_UNLOCK(object); + vm_object_reference_locked(object); + VM_OBJECT_UNLOCK(object); } /* @@ -395,8 +384,6 @@ vm_object_reference_locked(vm_object_t object) struct vnode *vp; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); - KASSERT((object->flags & OBJ_DEAD) == 0, - ("vm_object_reference_locked: dead object referenced")); object->ref_count++; if (object->type == OBJT_VNODE) { vp = object->handle; |