diff options
author | dyson <dyson@FreeBSD.org> | 1998-02-25 03:56:15 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1998-02-25 03:56:15 +0000 |
commit | 014146c040ed6640e606b46e58c066fc3a1c442c (patch) | |
tree | 58ba9b01b799e946135e458cf791510488f813df /sys/vm/vm_map.c | |
parent | ff694902b34f411a83d04c782b9310e79c3701e9 (diff) | |
download | FreeBSD-src-014146c040ed6640e606b46e58c066fc3a1c442c.zip FreeBSD-src-014146c040ed6640e606b46e58c066fc3a1c442c.tar.gz |
Fix page prezeroing for SMP, and fix some potential paging-in-progress
hangs. The paging-in-progress diagnosis was a result of Tor Egge's
excellent detective work.
Submitted by: Partially from Tor Egge.
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r-- | sys/vm/vm_map.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index cb4b22f..930d687 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_map.c,v 1.115 1998/02/20 13:11:54 bde Exp $ + * $Id: vm_map.c,v 1.116 1998/02/23 08:22:33 dyson Exp $ */ /* @@ -2632,12 +2632,7 @@ vm_freeze_copyopts(object, froma, toa) vm_object_reference(robject); - s = splvm(); - while (robject->paging_in_progress) { - robject->flags |= OBJ_PIPWNT; - tsleep(robject, PVM, "objfrz", 0); - } - splx(s); + vm_object_pip_wait(robject, "objfrz"); if (robject->ref_count == 1) { vm_object_deallocate(robject); |