]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
ceph: put folios not suitable for writeback old_testing
authorHristo Venev <hristo@venev.name>
Mon, 4 May 2026 15:54:45 +0000 (18:54 +0300)
committerViacheslav Dubeyko <Slava.Dubeyko@ibm.com>
Mon, 4 May 2026 18:24:57 +0000 (11:24 -0700)
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 <hristo@venev.name>
Reviewed-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>
fs/ceph/addr.c

index 56bc9c92547bf377f53160df77c76a22a8d29b89..d3904d1f39e75994ab83a119c40e9aa778f19aa4 100644 (file)
@@ -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;
                }