diff options
author | alc <alc@FreeBSD.org> | 2003-10-24 06:43:04 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2003-10-24 06:43:04 +0000 |
commit | a71ff79234d3c3aeed5f10bdf3963df1d991ea85 (patch) | |
tree | a860aff4c48180e54e6344d0e0e4cac285c3da83 /sys/vm/vnode_pager.c | |
parent | 2a08abfe7db45ead4bfe82cafb8f28cda34152ba (diff) | |
download | FreeBSD-src-a71ff79234d3c3aeed5f10bdf3963df1d991ea85.zip FreeBSD-src-a71ff79234d3c3aeed5f10bdf3963df1d991ea85.tar.gz |
- Push down Giant from vm_pageout() to vm_pageout_scan(), freeing
vm_pageout_page_stats() from Giant.
- Modify vm_pager_put_pages() and vm_pager_page_unswapped() to expect the
vm object to be locked on entry. (All of the pager routines now expect
this.)
Diffstat (limited to 'sys/vm/vnode_pager.c')
-rw-r--r-- | sys/vm/vnode_pager.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index 16602d7..08daaca 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -953,6 +953,7 @@ vnode_pager_putpages(object, m, count, sync, rtvals) * Call device-specific putpages function */ vp = object->handle; + VM_OBJECT_UNLOCK(object); if (vp->v_type != VREG) mp = NULL; (void)vn_start_write(vp, &mp, V_WAIT); @@ -960,6 +961,7 @@ vnode_pager_putpages(object, m, count, sync, rtvals) KASSERT(rtval != EOPNOTSUPP, ("vnode_pager: stale FS putpages\n")); vn_finished_write(mp); + VM_OBJECT_LOCK(object); } |