Download raw body.
Use uao_dropswap()
Call uao_dropswap() instead of rerolling it. ok?
Index: uvm/uvm_aobj.c
===================================================================
RCS file: /cvs/src/sys/uvm/uvm_aobj.c,v
diff -u -p -r1.108 uvm_aobj.c
--- uvm/uvm_aobj.c 13 May 2023 09:24:59 -0000 1.108
+++ uvm/uvm_aobj.c 6 Apr 2024 11:21:15 -0000
@@ -1398,7 +1398,7 @@ uao_pagein_page(struct uvm_aobj *aobj, i
{
struct uvm_object *uobj = &aobj->u_obj;
struct vm_page *pg;
- int rv, slot, npages;
+ int rv, npages;
pg = NULL;
npages = 1;
@@ -1429,8 +1429,7 @@ uao_pagein_page(struct uvm_aobj *aobj, i
* ok, we've got the page now.
* mark it as dirty, clear its swslot and un-busy it.
*/
- slot = uao_set_swslot(&aobj->u_obj, pageidx, 0);
- uvm_swap_free(slot, 1);
+ uao_dropswap(&aobj->u_obj, pageidx);
atomic_clearbits_int(&pg->pg_flags, PG_BUSY|PG_CLEAN|PG_FAKE);
UVM_PAGE_OWN(pg, NULL);
Use uao_dropswap()