[PATCH 4/4] ceph: remove page_snap_context()
Tal Zussman <[email protected]> Sun, 02 Aug 2026 12:50:05 -0400
| Newsgroups | org.kernel.vger.ceph-devel,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <20260802-remove-wait-on-page-writeback-v1-4-6c35d6b3ad36@columbia.edu> |
Convert the final caller in get_writepages_data_length() to use a folio and ceph_folio_snap_context(), then remove page_snap_context(). This drops the last open-coded use of page->private in ceph's writeback path. Signed-off-by: Tal Zussman <[email protected]> --- fs/ceph/addr.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index f4aaf9a5f196..702cf5fc1eab 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -29,9 +29,9 @@ * * There are a few funny things going on here. * - * The page->private field is used to reference a struct - * ceph_snap_context for _every_ dirty page. This indicates which - * snapshot the page was logically dirtied in, and thus which snap + * The folio->private field is used to reference a struct + * ceph_snap_context for _every_ dirty folio. This indicates which + * snapshot the folio was logically dirtied in, and thus which snap * context needs to be associated with the osd write during writeback. * * Similarly, struct ceph_inode_info maintains a set of counters to @@ -68,13 +68,6 @@ static int ceph_netfs_check_write_begin(struct file *file, loff_t pos, unsigned int len, struct folio **foliop, void **_fsdata); -static inline struct ceph_snap_context *page_snap_context(struct page *page) -{ - if (PagePrivate(page)) - return (void *)page->private; - return NULL; -} - static inline struct ceph_snap_context *ceph_folio_snap_context(struct folio *folio) { if (folio_test_private(folio)) @@ -697,7 +690,7 @@ static u64 get_writepages_data_length(struct inode *inode, u64 end = i_size_read(inode); u64 ret; - snapc = page_snap_context(ceph_fscrypt_pagecache_page(page)); + snapc = ceph_folio_snap_context(page_folio(ceph_fscrypt_pagecache_page(page))); if (snapc != ci->i_head_snapc) { bool found = false; spin_lock(&ci->i_ceph_lock); -- 2.39.5