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:
+2
-1
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user