Commit 544576f0 authored by Hristo Venev's avatar Hristo Venev Committed by Ilya Dryomov
Browse files

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.

Cc: stable@vger.kernel.org
Link: https://tracker.ceph.com/issues/74156


Signed-off-by: default avatarHristo Venev <hristo@venev.name>
Reviewed-by: default avatarViacheslav Dubeyko <Slava.Dubeyko@ibm.com>
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
parent 10d9be40
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1336,6 +1336,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) {
@@ -1346,6 +1347,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;
		}