u64 frame_vbo;
pgoff_t index;
bool frame_uptodate;
+ struct folio *folio;
if (frame_size < PAGE_SIZE) {
/*
if (err) {
for (ip = 0; ip < pages_per_frame; ip++) {
page = pages[ip];
- unlock_page(page);
- put_page(page);
+ folio = page_folio(page);
+ folio_unlock(folio);
+ folio_put(folio);
}
goto out;
}
off = offset_in_page(valid);
for (; ip < pages_per_frame; ip++, off = 0) {
page = pages[ip];
+ folio = page_folio(page);
zero_user_segment(page, off, PAGE_SIZE);
flush_dcache_page(page);
- SetPageUptodate(page);
+ folio_mark_uptodate(folio);
}
ni_lock(ni);
for (ip = 0; ip < pages_per_frame; ip++) {
page = pages[ip];
- SetPageUptodate(page);
- unlock_page(page);
- put_page(page);
+ folio = page_folio(page);
+ folio_mark_uptodate(folio);
+ folio_unlock(folio);
+ folio_put(folio);
}
if (err)
for (ip = 0; ip < pages_per_frame;
ip++) {
page = pages[ip];
- unlock_page(page);
- put_page(page);
+ folio = page_folio(page);
+ folio_unlock(folio);
+ folio_put(folio);
}
goto out;
}
for (ip = 0; ip < pages_per_frame; ip++) {
page = pages[ip];
ClearPageDirty(page);
- SetPageUptodate(page);
- unlock_page(page);
- put_page(page);
+ folio = page_folio(page);
+ folio_mark_uptodate(folio);
+ folio_unlock(folio);
+ folio_put(folio);
}
if (err)