[PATCH v4 00/10] ceph: convert writeback path to folios
Tal Zussman <[email protected]>
| Newsgroups | gmane.linux.file-systems,gmane.comp.file-systems.ceph.devel,gmane.linux.kernel,gmane.linux.kernel.mm |
|---|---|
| Message-ID | <20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu> |
Convert ceph's writeback path to work on folios. These conversions eliminate the last callers of three mm compatibility APIs: wait_on_page_writeback(), thp_size(), and thp_order(). Their removals will be sent separately once the conversions land, per Ceph maintainer request. This also fixes a couple pre-existing issues discovered by Sashiko along the way. Some page <-> folio boundaries are deliberately left in place where ceph borders on some gnarlier page-based APIs: - libceph's OSD data plane is page-array based, so ceph_writeback_ctl's pages[] and osd_data->pages[] remain struct page arrays. Folios are converted at the array/libceph boundary. - fscrypt's bounce page API remains page-based for some functions (fscrypt_encrypt_pagecache_blocks(), fscrypt_finalize_bounce_page()). Possibly-bounce array entries are unwrapped to their pagecache folios via fscrypt_pagecache_folio(). This series is based on the ceph-client testing branch [1]. [1] https://github.com/ceph/ceph-client/tree/testing Signed-off-by: Tal Zussman <[email protected]> --- Changes in v4: - Rebase onto the current ceph-client testing branch - Drop the two mm patches removing wait_on_page_writeback(), thp_size(), and thp_order(), per Alex - Patch 2: wait for the pending fscache write before bumping the writeback congestion count and allocating the OSD request, per Sashiko - Link to v3: https://lore.kernel.org/r/20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu Changes in v3: - Add patches 1 and 2, fixing a couple pre-existing bugs found by Sashiko - Patch 7 (was patch 5): Rework the ceph_submit_write() error path conversion on top of patch 1 - Patch 10 (was patch 8): Remove the BUG_ON(), per Sashiko and Matthew - Link to v2: https://lore.kernel.org/r/20260804-remove-wait-on-page-writeback-v2-0-81f0ab065284@columbia.edu Changes in v2: - Propagate tags (thanks David and Matthew!) - Rebase onto ceph-client.git testing - Rename the series to "ceph: convert writeback path to folios" - Patch 1: Drop the folio_test_private() check in ceph_folio_snap_context(), per Matthew and Zi. - Patch 4: Introduce ceph_fscrypt folio helpers and use them in get_writepages_data_length(), per Matthew. - Patches 5-10: new - Link to v1: https://lore.kernel.org/r/20260802-remove-wait-on-page-writeback-v1-0-6c35d6b3ad36@columbia.edu --- Tal Zussman (10): ceph: fix error handling when the OSD client is stopping in ceph_submit_write() ceph: wait for pending fscache write in write_folio_nounlock() ceph: add ceph_folio_snap_context() ceph: convert ceph_wait_until_current_writes_complete() to folios ceph: convert get_writepages_data_length() to folios ceph: convert ceph_submit_write() to folios ceph: remove page remnants from write_folio_nounlock() ceph: convert page cleanup loop in writepages_finish() to folios ceph: remove ceph_fscrypt_pagecache_page() and ceph_fscrypt_page_offset() ceph: rename ceph_check_page_before_write() to ceph_check_folio_before_write() fs/ceph/addr.c | 156 ++++++++++++++++++++++++++++++------------------------- fs/ceph/crypto.h | 12 ++--- 2 files changed, 91 insertions(+), 77 deletions(-) --- base-commit: fce4f3da41f1145cfa400002ce3a66e4a89a1902 change-id: 20260802-remove-wait-on-page-writeback-8e0cb766d4c7 Best regards, -- Tal Zussman <[email protected]>