summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 258a8da..08e4e15 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -536,15 +536,15 @@ vm_object_deallocate(vm_object_t object)
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
vdrop(vp);
VM_OBJECT_WLOCK(object);
- if (object->type == OBJT_DEAD) {
+ if (object->type == OBJT_DEAD ||
+ object->ref_count != 1) {
VM_OBJECT_WUNLOCK(object);
VOP_UNLOCK(vp, 0);
return;
- } else if ((object->flags & OBJ_TMPFS) != 0) {
- if (object->ref_count == 1)
- VOP_UNSET_TEXT(vp);
- VOP_UNLOCK(vp, 0);
}
+ if ((object->flags & OBJ_TMPFS) != 0)
+ VOP_UNSET_TEXT(vp);
+ VOP_UNLOCK(vp, 0);
}
if (object->shadow_count == 0 &&
object->handle == NULL &&
OpenPOWER on IntegriCloud