Page MenuHomeFreeBSD

D47767.id146998.diff
No OneTemporary

D47767.id146998.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
@@ -2503,26 +2503,23 @@
VM_OBJECT_ASSERT_RLOCKED(object);
vm_page_iter_init(&pages, object);
m = vm_page_iter_lookup_ge(&pages, pindex);
- if (m != NULL) {
- if (!vm_page_any_valid(m))
- m = NULL;
- else if (pages.index == pindex)
- return (pages.index);
- }
+ if (m != NULL && pages.index == pindex && vm_page_any_valid(m))
+ return (pages.index);
swblk_iter_init_only(&blks, object);
swap_index = swap_pager_iter_find_least(&blks, pindex);
if (swap_index == pindex)
return (swap_index);
- if (swap_index == OBJ_MAX_SIZE)
- swap_index = object->size;
- if (m == NULL)
- return (swap_index);
- while ((m = vm_radix_iter_step(&pages)) != NULL &&
- pages.index < swap_index) {
+ /*
+ * Find the first resident page after m, before swap_index.
+ */
+ while (m != NULL && pages.index < swap_index) {
if (vm_page_any_valid(m))
return (pages.index);
+ m = vm_radix_iter_step(&pages);
}
+ if (swap_index == OBJ_MAX_SIZE)
+ swap_index = object->size;
return (swap_index);
}

File Metadata

Mime Type
text/plain
Expires
Thu, Dec 25, 8:00 AM (3 h, 21 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27244102
Default Alt Text
D47767.id146998.diff (1 KB)

Event Timeline