Files
linux/drivers/block
Ming Lei 9fed24fe30 block: loop: fix filesystem corruption in case of aio/dio
commit a7297a6a3a upstream.

Starting from commit e36f620428(block: split bios to max possible length),
block core starts to split bio in the middle of bvec.

Unfortunately loop dio/aio doesn't consider this situation, and
always treat 'iter.iov_offset' as zero. Then filesystem corruption
is observed.

This patch figures out the offset of the base bvevc via
'bio->bi_iter.bi_bvec_done' and fixes the issue by passing the offset
to iov iterator.

Fixes: e36f620428 (block: split bios to max possible length)
Cc: Keith Busch <keith.busch@intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-05-04 14:48:39 -07:00
..
2016-04-12 09:08:53 -07:00
2011-08-08 11:40:15 +02:00
2005-04-16 15:20:36 -07:00
2014-08-08 15:57:28 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2015-09-23 11:01:16 -06:00
2013-11-08 09:10:30 -07:00
2009-03-26 21:15:27 +01:00