OSDN Git Service

block: add a bvec_set_folio helper
authorChristoph Hellwig <hch@lst.de>
Fri, 3 Feb 2023 15:06:13 +0000 (16:06 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 3 Feb 2023 15:20:55 +0000 (08:20 -0700)
A smaller wrapper around bvec_set_page that takes a folio instead.
There are only two potential users for this in the tree, but the number
will grow in the future.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Link: https://lore.kernel.org/r/20230203150634.3199647-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/bvec.h

index a7b7c01..b9e64b9 100644 (file)
@@ -49,6 +49,19 @@ static inline void bvec_set_page(struct bio_vec *bv, struct page *page,
        bv->bv_offset = offset;
 }
 
+/**
+ * bvec_set_folio - initialize a bvec based off a struct folio
+ * @bv:                bvec to initialize
+ * @folio:     folio the bvec should point to
+ * @len:       length of the bvec
+ * @offset:    offset into the folio
+ */
+static inline void bvec_set_folio(struct bio_vec *bv, struct folio *folio,
+               unsigned int len, unsigned int offset)
+{
+       bvec_set_page(bv, &folio->page, len, offset);
+}
+
 struct bvec_iter {
        sector_t                bi_sector;      /* device address in 512 byte
                                                   sectors */