buffer: convert link_dev_buffers to take a folio

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@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Andreas Gruenbacher <agruenba@redhat.com>
Cc: Bob Peterson <rpeterso@redhat.com>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Matthew Wilcox (Oracle) 2023-06-12 22:01:39 +01:00 committed by Andrew Morton
parent 6f24ce6bec
commit 08d84add43

View File

@ -907,8 +907,8 @@ struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size,
} }
EXPORT_SYMBOL_GPL(alloc_page_buffers); EXPORT_SYMBOL_GPL(alloc_page_buffers);
static inline void static inline void link_dev_buffers(struct folio *folio,
link_dev_buffers(struct page *page, struct buffer_head *head) struct buffer_head *head)
{ {
struct buffer_head *bh, *tail; struct buffer_head *bh, *tail;
@ -918,7 +918,7 @@ link_dev_buffers(struct page *page, struct buffer_head *head)
bh = bh->b_this_page; bh = bh->b_this_page;
} while (bh); } while (bh);
tail->b_this_page = head; 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) static sector_t blkdev_max_block(struct block_device *bdev, unsigned int size)
@ -1013,7 +1013,7 @@ grow_dev_page(struct block_device *bdev, sector_t block,
* run under the folio lock. * run under the folio lock.
*/ */
spin_lock(&inode->i_mapping->private_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, end_block = folio_init_buffers(folio, bdev,
(sector_t)index << sizebits, size); (sector_t)index << sizebits, size);
spin_unlock(&inode->i_mapping->private_lock); spin_unlock(&inode->i_mapping->private_lock);