diff options
author | Ming Lei <tom.leiming@gmail.com> | 2017-02-14 16:29:03 +0100 |
---|---|---|
committer | Shaohua Li <shli@fb.com> | 2017-02-15 20:24:54 +0100 |
commit | d7a1030839d35c04a620e841f406b9b2a8600041 (patch) | |
tree | 293b09d7b92528436daa8953c9202cf669702037 /drivers/md/faulty.c | |
parent | md: remove unnecessary check on mddev (diff) | |
download | linux-d7a1030839d35c04a620e841f406b9b2a8600041.tar.xz linux-d7a1030839d35c04a620e841f406b9b2a8600041.zip |
md: fast clone bio in bio_clone_mddev()
Firstly bio_clone_mddev() is used in raid normal I/O and isn't
in resync I/O path.
Secondly all the direct access to bvec table in raid happens on
resync I/O except for write behind of raid1, in which we still
use bio_clone() for allocating new bvec table.
So this patch replaces bio_clone() with bio_clone_fast()
in bio_clone_mddev().
Also kill bio_clone_mddev() and call bio_clone_fast() directly, as
suggested by Christoph Hellwig.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md/faulty.c')
-rw-r--r-- | drivers/md/faulty.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/faulty.c b/drivers/md/faulty.c index 685aa2d77e25..b0536cfd8e17 100644 --- a/drivers/md/faulty.c +++ b/drivers/md/faulty.c @@ -214,7 +214,7 @@ static void faulty_make_request(struct mddev *mddev, struct bio *bio) } } if (failit) { - struct bio *b = bio_clone_mddev(bio, GFP_NOIO, mddev); + struct bio *b = bio_clone_fast(bio, GFP_NOIO, mddev->bio_set); b->bi_bdev = conf->rdev->bdev; b->bi_private = bio; |