mm/filemap.c: convert page_endio() to use a folio
Replace three calls to compound_head() with one. Link: https://lkml.kernel.org/r/20220809023256.178194-1-shaoqin.huang@intel.com Signed-off-by: Shaoqin Huang <shaoqin.huang@intel.com> Cc: Matthew Wilcox <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Родитель
2ace36f0f5
Коммит
223ce4910b
16
mm/filemap.c
16
mm/filemap.c
|
@ -1633,24 +1633,26 @@ EXPORT_SYMBOL(folio_end_writeback);
|
|||
*/
|
||||
void page_endio(struct page *page, bool is_write, int err)
|
||||
{
|
||||
struct folio *folio = page_folio(page);
|
||||
|
||||
if (!is_write) {
|
||||
if (!err) {
|
||||
SetPageUptodate(page);
|
||||
folio_mark_uptodate(folio);
|
||||
} else {
|
||||
ClearPageUptodate(page);
|
||||
SetPageError(page);
|
||||
folio_clear_uptodate(folio);
|
||||
folio_set_error(folio);
|
||||
}
|
||||
unlock_page(page);
|
||||
folio_unlock(folio);
|
||||
} else {
|
||||
if (err) {
|
||||
struct address_space *mapping;
|
||||
|
||||
SetPageError(page);
|
||||
mapping = page_mapping(page);
|
||||
folio_set_error(folio);
|
||||
mapping = folio_mapping(folio);
|
||||
if (mapping)
|
||||
mapping_set_error(mapping, err);
|
||||
}
|
||||
end_page_writeback(page);
|
||||
folio_end_writeback(folio);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(page_endio);
|
||||
|
|
Загрузка…
Ссылка в новой задаче