• Mike Snitzer's avatar
    dm: use bio_split() when splitting out the already processed bio · f21c601a
    Mike Snitzer authored
    Use of bio_clone_bioset() is inefficient if there is no need to clone
    the original bio's bio_vec array.  Best to use the bio_clone_fast()
    variant.  Also, just using bio_advance() is only part of what is needed
    to properly setup the clone -- it doesn't account for the various
    bio_integrity() related work that also needs to be performed (see
    bio_split).
    
    Address both of these issues by switching from bio_clone_bioset() to
    bio_split().
    
    Fixes: 18a25da8 ("dm: ensure bio submission follows a depth-first tree walk")
    Cc: stable@vger.kernel.org # 4.15+, requires removal of '&' before md->queue->bio_split
    Reported-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarNeilBrown <neilb@suse.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    f21c601a
dm.c 73.2 KB