From: Hristo Venev Date: Mon, 4 May 2026 15:54:45 +0000 (+0300) Subject: ceph: put folios not suitable for writeback X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bb66a5f9b819b6d35cb8e15b5c628980aba0a185;p=ceph-client.git ceph: put folios not suitable for writeback The batch holds references to the folios (see `filemap_get_folios`, `folio_batch_release`), so we need to `folio_put` the folios we remove. Tested on v6.18. Link: https://tracker.ceph.com/issues/74156 Signed-off-by: Hristo Venev Reviewed-by: Viacheslav Dubeyko --- diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 56bc9c92547b..d3904d1f39e7 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1340,6 +1340,7 @@ void ceph_process_folio_batch(struct address_space *mapping, ceph_wbc, folio); if (rc == -ENODATA) { folio_unlock(folio); + folio_put(folio); ceph_wbc->fbatch.folios[i] = NULL; continue; } else if (rc == -E2BIG) { @@ -1350,6 +1351,7 @@ void ceph_process_folio_batch(struct address_space *mapping, if (!folio_clear_dirty_for_io(folio)) { doutc(cl, "%p !folio_clear_dirty_for_io\n", folio); folio_unlock(folio); + folio_put(folio); ceph_wbc->fbatch.folios[i] = NULL; continue; }