[PATCH v2 0/5] ceph: convert the inline data paths to folios

From: Tal Zussman

Date: Wed Sep 02 2026 - 12:47:33 EST


This removes the last ceph callers of find_or_create_page() and
find_get_page(), and one of the five remaining calls to
__page_cache_alloc().

The remaining inline data struct page use is the single-entry page array
in ceph_uninline_data(), due to the OSD client using page-based data
types.

Inline data support is deprecated and, as of the current testing
branch, gated behind CONFIG_CEPH_FS_INLINE_DATA ahead of its eventual
removal [1]. The conversions are still worth doing in the meantime, as
they remove the last ceph users of some deprecated mm APIs that we'd
like to remove next cycle.

Compile-tested only, with CONFIG_CEPH_FS_INLINE_DATA both enabled and
disabled.

[1] https://lore.kernel.org/ceph-devel/20260729-b4-ceph-remove-inline-data-v2-1-db0c92dab8ee@xxxxxxxxx/

---
Changes in v2:
- Rebase onto the latest ceph-client testing branch
- Patch 4: Convert the CONFIG_CEPH_FS_INLINE_DATA=n stub of
ceph_fill_inline_data() as well
- Drop the put_bvecs() patch, as it was unrelated and could underflow
the refcount of slab pages, per Sashiko
- Link to v1: https://lore.kernel.org/r/20260825-ceph-inline-folio-v1-0-d2366fade152@xxxxxxxxxxxx

---
Tal Zussman (5):
ceph: use a folio in ceph_get_caps()
ceph: use a folio in the inline read branch of ceph_filemap_fault()
ceph: use a folio in the READ_INLINE path of ceph_read_iter()
ceph: convert ceph_fill_inline_data() to take a folio
ceph: convert r_locked_page to r_locked_folio

fs/ceph/addr.c | 70 +++++++++++++++++++++++++---------------------------
fs/ceph/caps.c | 10 ++++----
fs/ceph/file.c | 18 +++++++-------
fs/ceph/inode.c | 14 +++++------
fs/ceph/mds_client.h | 2 +-
fs/ceph/super.h | 12 ++++-----
6 files changed, 61 insertions(+), 65 deletions(-)
---
base-commit: 6b039a71d37a39bb90a64c4e271f90ee0588ac4a
change-id: 20260825-ceph-inline-folio-17bcdb200850

Best regards,
--
Tal Zussman <tz2294@xxxxxxxxxxxx>