summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2006-02-01 09:47:02 +0000
committerjeff <jeff@FreeBSD.org>2006-02-01 09:47:02 +0000
commit4126297e171c6d0616d4e4f19fb1121c8b0b495e (patch)
tree9f45a84cd4218d8eb46be5ad8a843b7192412c9e
parentb2e03708cb3aa9bcb59e865233cd80c8f6c0eb64 (diff)
downloadFreeBSD-src-4126297e171c6d0616d4e4f19fb1121c8b0b495e.zip
FreeBSD-src-4126297e171c6d0616d4e4f19fb1121c8b0b495e.tar.gz
- Install a temporary bandaid in vm_object_reference() that will stop
mtx_assert()s from triggering until I find a real long-term solution.
-rw-r--r--sys/vm/vm_object.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index b1329ba..5000db4 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -349,19 +349,19 @@ void
vm_object_reference(vm_object_t object)
{
struct vnode *vp;
- int flags;
if (object == NULL)
return;
VM_OBJECT_LOCK(object);
object->ref_count++;
if (object->type == OBJT_VNODE) {
+ int vfslocked;
+
vp = object->handle;
- VI_LOCK(vp);
VM_OBJECT_UNLOCK(object);
- for (flags = LK_INTERLOCK; vget(vp, flags, curthread);
- flags = 0)
- printf("vm_object_reference: delay in vget\n");
+ vfslocked = VFS_LOCK_GIANT(vp->v_mount);
+ vget(vp, LK_RETRY, curthread);
+ VFS_UNLOCK_GIANT(vfslocked);
} else
VM_OBJECT_UNLOCK(object);
}
OpenPOWER on IntegriCloud