On Fri, Jul 21, 2017 at 04:33:44PM +0800, Guoqing Jiang wrote: > Since bio_io_error sets bi_status to BLK_STS_IOERR, > and calls bio_endio, so we can use it directly. > > And as mentioned by Shaohua, there are also two > places in raid5.c can use bio_io_error either. applied, thanks! > Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx> > --- > V2: > No changes, just rebased on latest kernel tree. > > drivers/md/raid1.c | 3 +-- > drivers/md/raid10.c | 6 ++---- > drivers/md/raid5.c | 9 +++------ > 3 files changed, 6 insertions(+), 12 deletions(-) > > diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c > index 1d235cc..f50958d 100644 > --- a/drivers/md/raid1.c > +++ b/drivers/md/raid1.c > @@ -790,8 +790,7 @@ static void flush_bio_list(struct r1conf *conf, struct bio *bio) > bio->bi_next = NULL; > bio->bi_bdev = rdev->bdev; > if (test_bit(Faulty, &rdev->flags)) { > - bio->bi_status = BLK_STS_IOERR; > - bio_endio(bio); > + bio_io_error(bio); > } else if (unlikely((bio_op(bio) == REQ_OP_DISCARD) && > !blk_queue_discard(bdev_get_queue(bio->bi_bdev)))) > /* Just ignore it */ > diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c > index e2617d0..f55d4cc 100644 > --- a/drivers/md/raid10.c > +++ b/drivers/md/raid10.c > @@ -905,8 +905,7 @@ static void flush_pending_writes(struct r10conf *conf) > bio->bi_next = NULL; > bio->bi_bdev = rdev->bdev; > if (test_bit(Faulty, &rdev->flags)) { > - bio->bi_status = BLK_STS_IOERR; > - bio_endio(bio); > + bio_io_error(bio); > } else if (unlikely((bio_op(bio) == REQ_OP_DISCARD) && > !blk_queue_discard(bdev_get_queue(bio->bi_bdev)))) > /* Just ignore it */ > @@ -1090,8 +1089,7 @@ static void raid10_unplug(struct blk_plug_cb *cb, bool from_schedule) > bio->bi_next = NULL; > bio->bi_bdev = rdev->bdev; > if (test_bit(Faulty, &rdev->flags)) { > - bio->bi_status = BLK_STS_IOERR; > - bio_endio(bio); > + bio_io_error(bio); > } else if (unlikely((bio_op(bio) == REQ_OP_DISCARD) && > !blk_queue_discard(bdev_get_queue(bio->bi_bdev)))) > /* Just ignore it */ > diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c > index aeeb8d6..4904dff 100644 > --- a/drivers/md/raid5.c > +++ b/drivers/md/raid5.c > @@ -3381,9 +3381,8 @@ handle_failed_stripe(struct r5conf *conf, struct stripe_head *sh, > sh->dev[i].sector + STRIPE_SECTORS) { > struct bio *nextbi = r5_next_bio(bi, sh->dev[i].sector); > > - bi->bi_status = BLK_STS_IOERR; > md_write_end(conf->mddev); > - bio_endio(bi); > + bio_io_error(bi); > bi = nextbi; > } > if (bitmap_end) > @@ -3403,9 +3402,8 @@ handle_failed_stripe(struct r5conf *conf, struct stripe_head *sh, > sh->dev[i].sector + STRIPE_SECTORS) { > struct bio *bi2 = r5_next_bio(bi, sh->dev[i].sector); > > - bi->bi_status = BLK_STS_IOERR; > md_write_end(conf->mddev); > - bio_endio(bi); > + bio_io_error(bi); > bi = bi2; > } > > @@ -3429,8 +3427,7 @@ handle_failed_stripe(struct r5conf *conf, struct stripe_head *sh, > struct bio *nextbi = > r5_next_bio(bi, sh->dev[i].sector); > > - bi->bi_status = BLK_STS_IOERR; > - bio_endio(bi); > + bio_io_error(bi); > bi = nextbi; > } > } > -- > 2.10.0 > -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html