diff options
author | alc <alc@FreeBSD.org> | 2002-07-21 20:38:45 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-07-21 20:38:45 +0000 |
commit | b9718e8d793f5e9454d8b45a1d560669ad575eda (patch) | |
tree | dbc0a4d6ff3d9003fa8bd123c68107add79a0ea3 | |
parent | e3955115b6a79de38b21c9e1f73b3df6123cc261 (diff) | |
download | FreeBSD-src-b9718e8d793f5e9454d8b45a1d560669ad575eda.zip FreeBSD-src-b9718e8d793f5e9454d8b45a1d560669ad575eda.tar.gz |
o Lock page queue accesses by vm_page_free().
-rw-r--r-- | sys/vm/swap_pager.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index 614fd48..7dc703c 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -1053,6 +1053,7 @@ swap_pager_getpages(object, m, count, reqpage) * free pages outside our collection range. Note: we never free * mreq, it must remain busy throughout. */ + vm_page_lock_queues(); { int k; @@ -1061,6 +1062,7 @@ swap_pager_getpages(object, m, count, reqpage) for (k = j; k < count; ++k) vm_page_free(m[k]); } + vm_page_unlock_queues(); splx(s); |