From 27b6ee0313255ebdf693a8c6dc713c3d40e4419a Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Fri, 18 Nov 2011 11:51:18 -0800 Subject: [PATCH] kernel - Fix swapcached problems when max-swap use reached (2) * Fix bug in last commit --- sys/vm/vm_swapcache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/vm/vm_swapcache.c b/sys/vm/vm_swapcache.c index b62158b9d2..94dcb3f7c7 100644 --- a/sys/vm/vm_swapcache.c +++ b/sys/vm/vm_swapcache.c @@ -678,11 +678,13 @@ vm_swapcache_cleaning(vm_object_t marker) * requested number of blocks, it will return n >= count * and we break and pick it back up on a future attempt. */ + vm_object_lock_swap(); lwkt_reltoken(&vmobj_token); + n = swap_pager_condfree(object, &marker->size, count); - lwkt_gettoken(&vmobj_token); vm_object_drop(object); + lwkt_gettoken(&vmobj_token); count -= n; if (count < 0) -- 2.41.0