1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-11 14:10:34 +00:00

swap_pager: Ensure that swapoff puts swapped-in pages in page queues

Readahead/behind pages are handled by the swap pager, but the get_pages
caller is responsible for putting fetched pages into queues (or wiring
them beforehand).

Note that the VM object lock prevents the newly queued page from being
immediately reclaimed in the window before it is marked dirty by
swap_pager_swapoff_object().

Reported by:	pho
Tested by:	pho
Reviewed by:	dougm, alc, kib
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D47526
This commit is contained in:
Mark Johnston 2024-11-13 14:02:20 +00:00
parent b210c33a91
commit d11d407aee

View File

@ -1998,6 +1998,7 @@ swap_pager_swapoff_object(struct swdevt *sp, vm_object_t object)
vm_object_pip_wakeupn(object, 1);
KASSERT(vm_page_all_valid(m),
("%s: Page %p not all valid", __func__, m));
vm_page_deactivate_noreuse(m);
vm_page_xunbusy(m);
break;
}