mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-18 10:35:55 +00:00
Handle busy status of the page in a way expected for pager_getpage().
Flush requested page, unbusy other pages, do not clear m->busy. Reviewed by: alc MFC after: 1 week
This commit is contained in:
parent
17bc427d0b
commit
5637a59143
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=207580
@ -152,10 +152,10 @@ phys_pager_getpages(vm_object_t object, vm_page_t *m, int count, int reqpage)
|
||||
KASSERT(m[i]->dirty == 0,
|
||||
("phys_pager_getpages: dirty page %p", m[i]));
|
||||
/* The requested page must remain busy, the others not. */
|
||||
if (reqpage != i) {
|
||||
m[i]->oflags &= ~VPO_BUSY;
|
||||
m[i]->busy = 0;
|
||||
}
|
||||
if (i == reqpage)
|
||||
vm_page_flash(m[i]);
|
||||
else
|
||||
vm_page_wakeup(m[i]);
|
||||
}
|
||||
return (VM_PAGER_OK);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user