The patch titled Subject: buffer: convert link_dev_buffers to take a folio has been added to the -mm mm-unstable branch. Its filename is buffer-convert-link_dev_buffers-to-take-a-folio.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/buffer-convert-link_dev_buffers-to-take-a-folio.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> Subject: buffer: convert link_dev_buffers to take a folio Date: Mon, 12 Jun 2023 22:01:39 +0100 Its one caller already has a folio, so switch it to use the folio API. Removes a hidden call to compound_head(). Link: https://lkml.kernel.org/r/20230612210141.730128-13-willy@xxxxxxxxxxxxx Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Cc: Andreas Gruenbacher <agruenba@xxxxxxxxxx> Cc: Bob Peterson <rpeterso@xxxxxxxxxx> Cc: Hannes Reinecke <hare@xxxxxxxx> Cc: Luis Chamberlain <mcgrof@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/buffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) --- a/fs/buffer.c~buffer-convert-link_dev_buffers-to-take-a-folio +++ a/fs/buffer.c @@ -907,8 +907,8 @@ struct buffer_head *alloc_page_buffers(s } EXPORT_SYMBOL_GPL(alloc_page_buffers); -static inline void -link_dev_buffers(struct page *page, struct buffer_head *head) +static inline void link_dev_buffers(struct folio *folio, + struct buffer_head *head) { struct buffer_head *bh, *tail; @@ -918,7 +918,7 @@ link_dev_buffers(struct page *page, stru bh = bh->b_this_page; } while (bh); tail->b_this_page = head; - attach_page_private(page, head); + folio_attach_private(folio, head); } static sector_t blkdev_max_block(struct block_device *bdev, unsigned int size) @@ -1013,7 +1013,7 @@ grow_dev_page(struct block_device *bdev, * run under the folio lock. */ spin_lock(&inode->i_mapping->private_lock); - link_dev_buffers(&folio->page, bh); + link_dev_buffers(folio, bh); end_block = folio_init_buffers(folio, bdev, (sector_t)index << sizebits, size); spin_unlock(&inode->i_mapping->private_lock); _ Patches currently in -mm which might be from willy@xxxxxxxxxxxxx are gfs2-use-a-folio-inside-gfs2_jdata_writepage.patch gfs2-pass-a-folio-to-__gfs2_jdata_write_folio.patch gfs2-convert-gfs2_write_jdata_page-to-gfs2_write_jdata_folio.patch buffer-convert-__block_write_full_page-to-__block_write_full_folio.patch gfs2-support-ludicrously-large-folios-in-gfs2_trans_add_databufs.patch buffer-make-block_write_full_page-handle-large-folios-correctly.patch buffer-convert-block_page_mkwrite-to-use-a-folio.patch buffer-convert-__block_commit_write-to-take-a-folio.patch buffer-convert-page_zero_new_buffers-to-folio_zero_new_buffers.patch buffer-convert-grow_dev_page-to-use-a-folio.patch buffer-convert-init_page_buffers-to-folio_init_buffers.patch buffer-convert-link_dev_buffers-to-take-a-folio.patch buffer-use-a-folio-in-__find_get_block_slow.patch buffer-convert-block_truncate_page-to-use-a-folio.patch