mm/page_io: introduce bio_first_folio_all()

Introduce bio_first_folio_all() to return a folio, which makes it easier
to use.

Link: https://lkml.kernel.org/r/20230721034451.16412-4-zhangpeng362@huawei.com
Signed-off-by: ZhangPeng <zhangpeng362@huawei.com>
Suggested-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Nanyong Sun <sunnanyong@huawei.com>
Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
ZhangPeng 2023-07-21 11:44:44 +08:00 committed by Andrew Morton
parent 9962ed64bd
commit 6d2790d95d
2 changed files with 6 additions and 0 deletions

View File

@ -134,6 +134,7 @@ Usage of helpers:
bio_for_each_bvec_all() bio_for_each_bvec_all()
bio_first_bvec_all() bio_first_bvec_all()
bio_first_page_all() bio_first_page_all()
bio_first_folio_all()
bio_last_bvec_all() bio_last_bvec_all()
* The following helpers iterate over single-page segment. The passed 'struct * The following helpers iterate over single-page segment. The passed 'struct

View File

@ -253,6 +253,11 @@ static inline struct page *bio_first_page_all(struct bio *bio)
return bio_first_bvec_all(bio)->bv_page; return bio_first_bvec_all(bio)->bv_page;
} }
static inline struct folio *bio_first_folio_all(struct bio *bio)
{
return page_folio(bio_first_page_all(bio));
}
static inline struct bio_vec *bio_last_bvec_all(struct bio *bio) static inline struct bio_vec *bio_last_bvec_all(struct bio *bio)
{ {
WARN_ON_ONCE(bio_flagged(bio, BIO_CLONED)); WARN_ON_ONCE(bio_flagged(bio, BIO_CLONED));