memory-failure: use a folio in me_pagecache_dirty()

Replaces three hidden calls to compound_head() with one visible one.

Link: https://lkml.kernel.org/r/20231117161447.2461643-3-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Naoya Horiguchi <naoya.horiguchi@nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Matthew Wilcox (Oracle) 2023-11-17 16:14:43 +00:00 committed by Andrew Morton
parent 3d47e31790
commit 6304b531cd
1 changed files with 4 additions and 3 deletions

View File

@ -1138,15 +1138,16 @@ static int me_pagecache_dirty(struct page_state *ps, struct page *p)
*/
static int me_swapcache_dirty(struct page_state *ps, struct page *p)
{
struct folio *folio = page_folio(p);
int ret;
bool extra_pins = false;
ClearPageDirty(p);
folio_clear_dirty(folio);
/* Trigger EIO in shmem: */
ClearPageUptodate(p);
folio_clear_uptodate(folio);
ret = delete_from_lru_cache(p) ? MF_FAILED : MF_DELAYED;
unlock_page(p);
folio_unlock(folio);
if (ret == MF_DELAYED)
extra_pins = true;