Page MenuHomeFreeBSD

D35839.diff
No OneTemporary

D35839.diff

diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -1506,10 +1506,8 @@
}
/* Get a block of swap of size up to size n. */
- VM_OBJECT_WLOCK(object);
blk = swp_pager_getswapspace(&n);
if (blk == SWAPBLK_NONE) {
- VM_OBJECT_WUNLOCK(object);
mtx_lock(&swbuf_mtx);
if (++nsw_wcount_async == 1)
wakeup(&nsw_wcount_async);
@@ -1518,6 +1516,7 @@
rtvals[i + j] = VM_PAGER_FAIL;
continue;
}
+ VM_OBJECT_WLOCK(object);
for (j = 0; j < n; ++j) {
mreq = ma[i + j];
vm_page_aflag_clear(mreq, PGA_SWAP_FREE);

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 16, 10:42 PM (20 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14666142
Default Alt Text
D35839.diff (608 B)

Event Timeline