X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fmd%2Ffaulty.c;h=feb2c3c7bb44ffafcd56b278a099b09b7bc5ad4c;hb=d0b9706c20ebb4ba181dc26e52ac9a6861abf425;hp=60816b132c2ee11923c10130901591d8bac79840;hpb=16ee792e45cf0c97ce061fce03c36cab5551ec72;p=~andy%2Flinux diff --git a/drivers/md/faulty.c b/drivers/md/faulty.c index 60816b132c2..feb2c3c7bb4 100644 --- a/drivers/md/faulty.c +++ b/drivers/md/faulty.c @@ -63,6 +63,7 @@ #define MaxFault 50 #include +#include #include #include #include "md.h" @@ -169,7 +170,7 @@ static void add_sector(struct faulty_conf *conf, sector_t start, int mode) conf->nfaults = n+1; } -static int make_request(struct mddev *mddev, struct bio *bio) +static void make_request(struct mddev *mddev, struct bio *bio) { struct faulty_conf *conf = mddev->private; int failit = 0; @@ -181,7 +182,7 @@ static int make_request(struct mddev *mddev, struct bio *bio) * just fail immediately */ bio_endio(bio, -EIO); - return 0; + return; } if (check_sector(conf, bio->bi_sector, bio->bi_sector+(bio->bi_size>>9), @@ -211,15 +212,15 @@ static int make_request(struct mddev *mddev, struct bio *bio) } if (failit) { struct bio *b = bio_clone_mddev(bio, GFP_NOIO, mddev); + b->bi_bdev = conf->rdev->bdev; b->bi_private = bio; b->bi_end_io = faulty_fail; - generic_make_request(b); - return 0; - } else { + bio = b; + } else bio->bi_bdev = conf->rdev->bdev; - return 1; - } + + generic_make_request(bio); } static void status(struct seq_file *seq, struct mddev *mddev)