Hi, Based on the previous thread [1], this patchset introduces attach_page_private and clear_page_private to replace attach_page_buffers and __clear_page_buffers. Thanks a lot for the constructive suggestions and comments from Christoph, Matthew and Dave. And sorry for cross post to different lists since it modifies different subsystems. RFC -> RFC V2: 1. rename the new functions and add comments for them. 2. change the return type of attach_page_private. 3. call attach_page_private(newpage, clear_page_private(page)) to cleanup code further. 4. avoid potential use-after-free in orangefs. [1]. https://lore.kernel.org/linux-fsdevel/20200420221424.GH5820@xxxxxxxxxxxxxxxxxxxxxx/ Thanks, Guoqing Guoqing Jiang (9): include/linux/pagemap.h: introduce attach/clear_page_private md: remove __clear_page_buffers and use attach/clear_page_private btrfs: use attach/clear_page_private fs/buffer.c: use attach/clear_page_private f2fs: use attach/clear_page_private iomap: use attach/clear_page_private ntfs: replace attach_page_buffers with attach_page_private orangefs: use attach/clear_page_private buffer_head.h: remove attach_page_buffers drivers/md/md-bitmap.c | 12 ++---------- fs/btrfs/disk-io.c | 4 +--- fs/btrfs/extent_io.c | 21 ++++++--------------- fs/btrfs/inode.c | 23 +++++------------------ fs/buffer.c | 16 ++++------------ fs/f2fs/f2fs.h | 11 ++--------- fs/iomap/buffered-io.c | 19 ++++--------------- fs/ntfs/aops.c | 2 +- fs/ntfs/mft.c | 2 +- fs/orangefs/inode.c | 32 ++++++-------------------------- include/linux/buffer_head.h | 8 -------- include/linux/pagemap.h | 35 +++++++++++++++++++++++++++++++++++ 12 files changed, 67 insertions(+), 118 deletions(-) -- 2.17.1