vm_object_page_remove(): clear pager even if there is no resident pages

Swap pager might still carry the data.

Debugging help from:	mmel
Reviewed by:	alc
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D53891
This commit is contained in:
Konstantin Belousov
2025-11-22 22:39:27 +02:00
parent 8a766c9e81
commit 72a447d0bc
+2 -1
View File
@@ -1988,7 +1988,7 @@ vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end,
(options & (OBJPR_CLEANONLY | OBJPR_NOTMAPPED)) == OBJPR_NOTMAPPED,
("vm_object_page_remove: illegal options for object %p", object));
if (object->resident_page_count == 0)
return;
goto remove_pager;
vm_object_pip_add(object, 1);
vm_page_iter_limit_init(&pages, object, end);
again:
@@ -2061,6 +2061,7 @@ vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end,
}
vm_object_pip_wakeup(object);
remove_pager:
vm_pager_freespace(object, start, (end == 0 ? object->size : end) -
start);
}