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:
parent
6f24ce6bec
commit
08d84add43
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user