PG_private is going to be removed and its check is replaced by checking page->private != NULL. Replace page_buffers() with page_private() and delete page_buffers(), since only two users left and both can be converted to use page_private(). Assisted-by: Claude:claude-opus-4-8 Assisted-by: Codex:gpt-5 Signed-off-by: Zi Yan To: Song Liu To: Yu Kuai To: Ilya Dryomov To: Alex Markuze To: Viacheslav Dubeyko Cc: Li Nan Cc: Xiao Ni Cc: linux-raid@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: ceph-devel@vger.kernel.org --- drivers/md/md-bitmap.c | 6 +++--- fs/ceph/addr.c | 4 +--- include/linux/buffer_head.h | 6 ------ 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index 0f02e2956398d..affd4807013e1 100644 --- a/drivers/md/md-bitmap.c +++ b/drivers/md/md-bitmap.c @@ -516,7 +516,7 @@ static void end_bitmap_write(struct bio *bio) static void write_file_page(struct bitmap *bitmap, struct page *page, int wait) { - struct buffer_head *bh = page_buffers(page); + struct buffer_head *bh = (struct buffer_head *)page_private(page); while (bh && bh->b_blocknr) { atomic_inc(&bitmap->pending_writes); @@ -535,10 +535,10 @@ static void free_buffers(struct page *page) { struct buffer_head *bh; - if (!PagePrivate(page)) + if (!page_private(page)) return; - bh = page_buffers(page); + bh = (struct buffer_head *)page_private(page); while (bh) { struct buffer_head *next = bh->b_this_page; free_buffer_head(bh); diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index ecf33b66610c8..92074db8732ac 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -70,9 +70,7 @@ static int ceph_netfs_check_write_begin(struct file *file, loff_t pos, unsigned static inline struct ceph_snap_context *page_snap_context(struct page *page) { - if (PagePrivate(page)) - return (void *)page->private; - return NULL; + return (void *)page->private; } /* diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 8b23bc9a244cb..5cf0b8c058ce0 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -175,12 +175,6 @@ static inline unsigned long bh_offset(const struct buffer_head *bh) return (unsigned long)(bh)->b_data & (page_size(bh->b_page) - 1); } -/* If we *know* page->private refers to buffer_heads */ -#define page_buffers(page) \ - ({ \ - BUG_ON(!PagePrivate(page)); \ - ((struct buffer_head *)page_private(page)); \ - }) #define folio_buffers(folio) folio_get_private(folio) void buffer_check_dirty_writeback(struct folio *folio, -- 2.53.0