mm/page_io: introduce bio_first_folio_all()
authorZhangPeng <zhangpeng362@huawei.com>
Fri, 21 Jul 2023 03:44:44 +0000 (11:44 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Aug 2023 17:12:45 +0000 (10:12 -0700)
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>
Documentation/block/biovecs.rst
include/linux/bio.h

index ddb867e..b9dc0c9 100644 (file)
@@ -134,6 +134,7 @@ Usage of helpers:
        bio_for_each_bvec_all()
        bio_first_bvec_all()
        bio_first_page_all()
+       bio_first_folio_all()
        bio_last_bvec_all()
 
 * The following helpers iterate over single-page segment. The passed 'struct
index c4f5b52..027ff9a 100644 (file)
@@ -253,6 +253,11 @@ static inline struct page *bio_first_page_all(struct bio *bio)
        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)
 {
        WARN_ON_ONCE(bio_flagged(bio, BIO_CLONED));