aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/vm_object.c
diff options
context:
space:
mode:
authorJeff Roberson <jeff@FreeBSD.org>2008-03-29 07:06:13 +0000
committerJeff Roberson <jeff@FreeBSD.org>2008-03-29 07:06:13 +0000
commit52481a9a9d5d6b8482b28d93fa646fef5df80601 (patch)
tree5d634998b0cd77b0387b3d371c2b7270573f2092 /sys/vm/vm_object.c
parent5c643ed000ac392a7b98558ee8f4340c5e60ca8c (diff)
downloadsrc-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.c17
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;