Thanks for doing this, Ming On Wed, Sep 05, 2018 at 11:33:35AM +0800, Ming Lei wrote: > It is pointed that bio_rewind_iter() is one very bad API[1]: > > 1) bio size may not be restored after rewinding > > 2) it causes some bogus change, such as 5151842b9d8732 (block: reset > bi_iter.bi_done after splitting bio) > > 3) rewinding really makes things complicated wrt. bio splitting > > 4) unnecessary updating of .bi_done in fast path > > [1] https://marc.info/?t=153549924200005&r=1&w=2 > > So this patch takes Kent's suggestion to restore one bio into its original > state via saving bio iterator(struct bvec_iter) in bio_integrity_prep(), > given now bio_rewind_iter() is only used by bio integrity code. > > Suggested-by: Kent Overstreet <kent.overstreet@xxxxxxxxx> > Cc: Kent Overstreet <kent.overstreet@xxxxxxxxx> > Cc: Dmitry Monakhov <dmonakhov@xxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Hannes Reinecke <hare@xxxxxxxx> > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> Acked-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>