diff options
author | Ming Lei <ming.lei@redhat.com> | 2019-02-15 19:13:15 +0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-02-15 08:40:11 -0700 |
commit | f70f44640759728d6e31326acbee08ca22d1066f (patch) | |
tree | c8504310301fb51dbf8a28612385b69d40dcc29d /fs/buffer.c | |
parent | 45a3fb95298b326ab8175f2bd97bd8666017b692 (diff) | |
download | linux-stable-f70f44640759728d6e31326acbee08ca22d1066f.tar.gz linux-stable-f70f44640759728d6e31326acbee08ca22d1066f.tar.bz2 linux-stable-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.c | 5 |
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); } } |