diff options
| author | John Dyson <dyson@FreeBSD.org> | 1998-02-05 03:32:49 +0000 |
|---|---|---|
| committer | John Dyson <dyson@FreeBSD.org> | 1998-02-05 03:32:49 +0000 |
| commit | 95461b450d8d76f79be75d7dd0aee4adec4223fb (patch) | |
| tree | 19ec035c730260d5d3bb5bf2326838b26108d09e /sys/vm/vnode_pager.c | |
| parent | 47cfdb166d16af183216e459e4e48aff9d2beabf (diff) | |
Notes
Diffstat (limited to 'sys/vm/vnode_pager.c')
| -rw-r--r-- | sys/vm/vnode_pager.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index 8f473c1ee175..352c4a0684ff 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.81 1998/01/31 11:56:53 dyson Exp $ + * $Id: vnode_pager.c,v 1.82 1998/02/04 22:34:03 eivind Exp $ */ /* @@ -181,9 +181,9 @@ vnode_pager_dealloc(object) } object->handle = NULL; - object->type = OBJT_DEFAULT; + object->type = OBJT_DEAD; vp->v_object = NULL; - vp->v_flag &= ~(VTEXT|VOBJBUF); + vp->v_flag &= ~(VTEXT | VOBJBUF); } static boolean_t @@ -763,7 +763,10 @@ vnode_pager_leaf_getpages(object, m, count, reqpage) * now tell them that it is ok to use */ if (!error) { - vm_page_deactivate(m[i]); + if (m[i]->flags & PG_WANTED) + vm_page_activate(m[i]); + else + vm_page_deactivate(m[i]); PAGE_WAKEUP(m[i]); } else { vnode_pager_freepage(m[i]); @@ -880,8 +883,10 @@ vnode_pager_leaf_putpages(object, m, count, sync, rtvals) if (i < ncount) { rtvals[i] = VM_PAGER_OK; } - if ((m[i]->busy == 0) && (m[i]->flags & PG_WANTED)) + if ((m[i]->busy == 0) && (m[i]->flags & PG_WANTED)) { + vm_page_activate(m[i]); wakeup(m[i]); + } } return rtvals[0]; } |
