| From: Shaoqin Huang <shaoqin.huang@intel.com> |
| Subject: mm/filemap.c: convert page_endio() to use a folio |
| Date: Tue, 9 Aug 2022 10:32:56 +0800 |
| |
| 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> |
| --- |
| |
| mm/filemap.c | 16 +++++++++------- |
| 1 file changed, 9 insertions(+), 7 deletions(-) |
| |
| --- a/mm/filemap.c~filemap-convert-page_endio-to-use-a-folio |
| +++ a/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); |
| _ |