block: implement bio helper to add iter bvec pages to bio
authorJens Axboe <axboe@kernel.dk>
Fri, 30 Nov 2018 15:47:03 +0000 (08:47 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 28 Feb 2019 15:24:23 +0000 (08:24 -0700)
commit6d0c48aede85e38316d0251564cab39cbc2422f6
tree4aa1374cc7c486a68d666e6dd120a2e66e48231d
parent2579f913d41a086563bb81762c519f3d62ddee37
block: implement bio helper to add iter bvec pages to bio

For an ITER_BVEC, we can just iterate the iov and add the pages
to the bio directly. For now, we grab a reference to those pages,
and release them normally on IO completion. This isn't really needed
for the normal case of O_DIRECT from/to a file, but some of the more
esoteric use cases (like splice(2)) will unconditionally put the
pipe buffer pages when the buffers are released. Until we can manage
that case properly, ITER_BVEC pages are treated like normal pages
in terms of reference counting.

Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bio.c