On Thu, Apr 20, 2017 at 03:38:49PM +1000, NeilBrown wrote: > drbd does not modify the bi_io_vec of the cloned bio, > so there is no need to clone that part. So bio_clone_fast() > is the better choice. > For bio_clone_fast() we need to specify a bio_set. > We could use fs_bio_set, which bio_clone() uses, or > drbd_md_io_bio_set, which drbd uses for metadata, but it is > generally best to avoid sharing bio_sets unless you can > be certain that there are no interdependencies. > > So create a new bio_set, drbd_io_bio_set, and use bio_clone_fast(). > > Signed-off-by: NeilBrown <neilb@xxxxxxxx> All the zeroing of the gblobal variable looks unessecary / stupid. But given that the surrounding code already does it: Reviewed-by: Christoph Hellwig <hch@xxxxxx> > + bio = bio_clone_fast(bio_src, GFP_NOIO, drbd_io_bio_set); /* XXX cannot fail!! */ but maybe I'd drop this comment..