diff options
author | jeff <jeff@FreeBSD.org> | 2006-02-01 09:47:02 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2006-02-01 09:47:02 +0000 |
commit | 4126297e171c6d0616d4e4f19fb1121c8b0b495e (patch) | |
tree | 9f45a84cd4218d8eb46be5ad8a843b7192412c9e | |
parent | b2e03708cb3aa9bcb59e865233cd80c8f6c0eb64 (diff) | |
download | FreeBSD-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.c | 10 |
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); } |