kernel/vm: Free pages via vm_page_free only, not vm_page_set_state.

All consumers of this API should be adjusted here.

This partially paves the way for use of committed pages for page tables.

Change-Id: Id6fc2edc86fbd80e929c413e23cf8de1509a8215
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8723
Reviewed-by: X512 X512 <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
Augustin Cavalier
2024-12-28 14:47:32 +00:00
committed by waddlesplash
parent bd0f4983c8
commit b1a913c3aa
16 changed files with 59 additions and 41 deletions
+3 -3
View File
@@ -223,7 +223,7 @@ PrecacheIO::IOFinished(status_t status, bool partialTransfer,
DEBUG_PAGE_ACCESS_TRANSFER(fPages[i], fAllocatingThread);
fCache->NotifyPageEvents(fPages[i], PAGE_EVENT_NOT_BUSY);
fCache->RemovePage(fPages[i]);
vm_page_set_state(fPages[i], PAGE_STATE_FREE);
vm_page_free(fCache, fPages[i]);
}
delete this;
@@ -319,7 +319,7 @@ reserve_pages(file_cache_ref* ref, vm_page_reservation* reservation,
ASSERT(!page->IsMapped());
ASSERT(!page->modified);
cache->RemovePage(page);
vm_page_set_state(page, PAGE_STATE_FREE);
vm_page_free(cache, page);
left--;
}
}
@@ -421,7 +421,7 @@ read_into_cache(file_cache_ref* ref, void* cookie, off_t offset,
for (int32 i = 0; i < pageIndex; i++) {
cache->NotifyPageEvents(pages[i], PAGE_EVENT_NOT_BUSY);
cache->RemovePage(pages[i]);
vm_page_set_state(pages[i], PAGE_STATE_FREE);
vm_page_free(cache, pages[i]);
}
return status;