summaryrefslogtreecommitdiffstats
path: root/fs/buffer.c
diff options
context:
space:
mode:
authorMing Lei2019-02-15 12:13:15 +0100
committerJens Axboe2019-02-15 16:40:11 +0100
commitf70f44640759728d6e31326acbee08ca22d1066f (patch)
treec8504310301fb51dbf8a28612385b69d40dcc29d /fs/buffer.c
parentblock: introduce mp_bvec_last_segment() (diff)
downloadkernel-qcow2-linux-f70f44640759728d6e31326acbee08ca22d1066f.tar.gz
kernel-qcow2-linux-f70f44640759728d6e31326acbee08ca22d1066f.tar.xz
kernel-qcow2-linux-f70f44640759728d6e31326acbee08ca22d1066f.zip
fs/buffer.c: use bvec iterator to truncate the bio
Once multi-page bvec is enabled, the last bvec may include more than one page, this patch use mp_bvec_last_segment() to truncate the bio. Reviewed-by: Omar Sandoval <osandov@fb.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Ming Lei <ming.lei@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/buffer.c')
-rw-r--r--fs/buffer.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/buffer.c b/fs/buffer.c
index 52d024bfdbc1..817871274c77 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -3032,7 +3032,10 @@ void guard_bio_eod(int op, struct bio *bio)
/* ..and clear the end of the buffer for reads */
if (op == REQ_OP_READ) {
- zero_user(bvec->bv_page, bvec->bv_offset + bvec->bv_len,
+ struct bio_vec bv;
+
+ mp_bvec_last_segment(bvec, &bv);
+ zero_user(bv.bv_page, bv.bv_offset + bv.bv_len,
truncated_bytes);
}
}