filemap: Add a helper for filesystems implementing dropbehind

Add a helper to allow filesystems to attempt to free the 'dropbehind'
folio.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Link: https://lore.kernel.org/all/5588a06f6d5a2cf6746828e2d36e7ada668b1739.1745381692.git.trond.myklebust@hammerspace.com/
Reviewed-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
This commit is contained in:
Trond Myklebust
2025-09-06 12:48:14 -04:00
committed by Anna Schumaker
parent cc6ac66f1c
commit 24bbd533f5
2 changed files with 4 additions and 2 deletions

View File

@@ -1608,7 +1608,7 @@ static void filemap_end_dropbehind(struct folio *folio)
* completes. Do that now. If we fail, it's likely because of a big folio -
* just reset dropbehind for that case and latter completions should invalidate.
*/
static void filemap_end_dropbehind_write(struct folio *folio)
void folio_end_dropbehind(struct folio *folio)
{
if (!folio_test_dropbehind(folio))
return;
@@ -1625,6 +1625,7 @@ static void filemap_end_dropbehind_write(struct folio *folio)
folio_unlock(folio);
}
}
EXPORT_SYMBOL_GPL(folio_end_dropbehind);
/**
* folio_end_writeback - End writeback against a folio.
@@ -1660,7 +1661,7 @@ void folio_end_writeback(struct folio *folio)
if (__folio_end_writeback(folio))
folio_wake_bit(folio, PG_writeback);
filemap_end_dropbehind_write(folio);
folio_end_dropbehind(folio);
acct_reclaim_writeback(folio);
folio_put(folio);
}