Liu Bo 17347cec15 Btrfs: change how we iterate bios in endio
Since dio submit has used bio_clone_fast, the submitted bio may not have a
reliable bi_vcnt, for the bio vector iterations in checksum related
functions, bio->bi_iter is not modified yet and it's safe to use
bio_for_each_segment, while for those bio vector iterations in dio read's
endio, we now save a copy of bvec_iter in struct btrfs_io_bio when cloning
bios and use the helper __bio_for_each_segment with the saved bvec_iter to
access each bvec.

Also for dio reads which don't get split, we also need to save a copy of
bio iterator in btrfs_bio_clone to let __bio_for_each_segments to access
each bvec in dio read's endio.  Note that it doesn't affect other calls of
btrfs_bio_clone() because they don't need to use this iterator.

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2017-06-19 18:25:59 +02:00
..
2017-05-05 15:24:52 -04:00
2017-03-28 16:16:52 +02:00
2017-05-12 15:57:15 -07:00
2017-06-14 19:37:23 +02:00
2017-04-19 14:21:23 +02:00
2017-06-04 11:56:53 -07:00
2017-04-20 12:09:55 -06:00
2017-05-05 13:36:10 -07:00
2017-06-17 17:34:41 +09:00
2017-04-17 12:52:27 -04:00
2017-02-27 18:43:46 -08:00
2016-12-14 23:48:11 -05:00
2017-02-27 18:43:46 -08:00
2017-05-08 17:15:12 -07:00
2017-06-09 16:28:01 -04:00