Re: [PATCH 06/11] drbd: use bio_clone_fast() instead of bio_clone()

From: Christoph Hellwig
Date: Fri Apr 21 2017 - 07:30:49 EST


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..