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/vnode_pager.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/vnode_pager.c')
-rw-r--r-- | sys/vm/vnode_pager.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index e7a9efb..98b57b0 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: @(#)vnode_pager.c 7.5 (Berkeley) 4/20/91 - * $Id: vnode_pager.c,v 1.84 1998/02/06 12:14:30 eivind Exp $ + * $Id: vnode_pager.c,v 1.85 1998/02/23 08:22:48 dyson Exp $ */ /* @@ -169,14 +169,7 @@ vnode_pager_dealloc(object) if (vp == NULL) panic("vnode_pager_dealloc: pager already dealloced"); - if (object->paging_in_progress) { - int s = splvm(); - while (object->paging_in_progress) { - object->flags |= OBJ_PIPWNT; - tsleep(object, PVM, "vnpdea", 0); - } - splx(s); - } + vm_object_pip_wait(object, "vnpdea"); object->handle = NULL; object->type = OBJT_DEAD; |