Message ID | 20230417123618.22094-2-p.raghav@samsung.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
Series | convert create_page_buffers to folio_create_buffers | expand |
On Mon, Apr 17, 2023 at 02:36:15PM +0200, Pankaj Raghav wrote: > The folio version of set_bh_page(). This is required to convert > create_page_buffers() to folio_create_buffers() later in the series. > > Signed-off-by: Pankaj Raghav <p.raghav@samsung.com> Yep, not worth making this a wrapper for set_bh_page(). Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
On 4/17/23 14:36, Pankaj Raghav wrote: > The folio version of set_bh_page(). This is required to convert > create_page_buffers() to folio_create_buffers() later in the series. > > Signed-off-by: Pankaj Raghav <p.raghav@samsung.com> > --- > fs/buffer.c | 15 +++++++++++++++ > include/linux/buffer_head.h | 2 ++ > 2 files changed, 17 insertions(+) > Reviewed-by: Hannes Reinecke <hare@suse.de> Cheers, Hannes
diff --git a/fs/buffer.c b/fs/buffer.c index b3eb905f87d6..7e74bd77a81b 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -1484,6 +1484,21 @@ void set_bh_page(struct buffer_head *bh, } EXPORT_SYMBOL(set_bh_page); +void folio_set_bh(struct buffer_head *bh, struct folio *folio, + unsigned long offset) +{ + bh->b_folio = folio; + BUG_ON(offset >= folio_size(folio)); + if (folio_test_highmem(folio)) + /* + * This catches illegal uses and preserves the offset: + */ + bh->b_data = (char *)(0 + offset); + else + bh->b_data = folio_address(folio) + offset; +} +EXPORT_SYMBOL(folio_set_bh); + /* * Called when truncating a buffer on a page completely. */ diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 8f14dca5fed7..7e92d23f4782 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -196,6 +196,8 @@ void mark_buffer_write_io_error(struct buffer_head *bh); void touch_buffer(struct buffer_head *bh); void set_bh_page(struct buffer_head *bh, struct page *page, unsigned long offset); +void folio_set_bh(struct buffer_head *bh, struct folio *folio, + unsigned long offset); bool try_to_free_buffers(struct folio *); struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size, bool retry);
The folio version of set_bh_page(). This is required to convert create_page_buffers() to folio_create_buffers() later in the series. Signed-off-by: Pankaj Raghav <p.raghav@samsung.com> --- fs/buffer.c | 15 +++++++++++++++ include/linux/buffer_head.h | 2 ++ 2 files changed, 17 insertions(+)