diff options
| author | Alan Cox <alc@FreeBSD.org> | 2007-03-27 08:55:17 +0000 |
|---|---|---|
| committer | Alan Cox <alc@FreeBSD.org> | 2007-03-27 08:55:17 +0000 |
| commit | 19c244d0640c2ed3d6da0c746a3c0873e5df7c94 (patch) | |
| tree | 1c8d43ff5e27c6d7516c25f0fbdedffedbf2c63d /sys/vm/vm_object.c | |
| parent | 45c4f0cbc3670cd6f8f5776bb8838ffe499910b3 (diff) | |
Notes
Diffstat (limited to 'sys/vm/vm_object.c')
| -rw-r--r-- | sys/vm/vm_object.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index e680a22bbfd1..dfcade1d8c6a 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1317,6 +1317,14 @@ vm_object_split(vm_map_entry_t entry) source = orig_object->backing_object; if (source != NULL) { VM_OBJECT_LOCK(source); + if ((source->flags & OBJ_DEAD) != 0) { + VM_OBJECT_UNLOCK(source); + VM_OBJECT_UNLOCK(orig_object); + VM_OBJECT_UNLOCK(new_object); + vm_object_deallocate(new_object); + VM_OBJECT_LOCK(orig_object); + return; + } LIST_INSERT_HEAD(&source->shadow_head, new_object, shadow_list); source->shadow_count++; |
