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

Approved by:	so
Security:	FreeBSD-EN-26:03.vm

(cherry picked from commit 72a447d0bc768c7fe8a9c972f710c75afebd581b)
(cherry picked from commit feac4c32a5f87434a17a804d8148cea78f81ebea)
This commit is contained in:
Konstantin Belousov 2025-11-22 22:39:27 +02:00 committed by Franco Fichtner
parent 0eb74ff005
commit 8137bf0efa

View file

@ -2088,7 +2088,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);
again:
p = vm_page_find_least(object, start);
@ -2164,6 +2164,7 @@ wired:
}
vm_object_pip_wakeup(object);
remove_pager:
vm_pager_freespace(object, start, (end == 0 ? object->size : end) -
start);
}