diff options
author | Christoph Hellwig <hch@lst.de> | 2019-03-03 09:14:01 -0700 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2019-04-05 08:07:57 +0200 |
commit | 3aef3cae4342c1d8137a1c0782cbb66f1be3943c (patch) | |
tree | b3395af3de378c1cc00c6a85375a8a6dff8146c8 | |
parent | 39f8e36401142d73e33a954ac4bdf844fb5de9ae (diff) | |
download | linux-3aef3cae4342c1d8137a1c0782cbb66f1be3943c.tar.bz2 |
block: add a req_bvec helper
Return the currently active bvec segment, potentially spanning multiple
pages.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
-rw-r--r-- | include/linux/blkdev.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 5c58a3b2bf00..84ce76f92d83 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -932,6 +932,17 @@ static inline unsigned int blk_rq_payload_bytes(struct request *rq) return blk_rq_bytes(rq); } +/* + * Return the first full biovec in the request. The caller needs to check that + * there are any bvecs before calling this helper. + */ +static inline struct bio_vec req_bvec(struct request *rq) +{ + if (rq->rq_flags & RQF_SPECIAL_PAYLOAD) + return rq->special_vec; + return mp_bvec_iter_bvec(rq->bio->bi_io_vec, rq->bio->bi_iter); +} + static inline unsigned int blk_queue_get_max_sectors(struct request_queue *q, int op) { |