diff options
Diffstat (limited to 'drivers/md/raid10.c')
-rw-r--r-- | drivers/md/raid10.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 0cd9672cf9cb..ea5fc0b6a84c 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
@@ -830,7 +830,7 @@ static void unfreeze_array(conf_t *conf) | |||
830 | spin_unlock_irq(&conf->resync_lock); | 830 | spin_unlock_irq(&conf->resync_lock); |
831 | } | 831 | } |
832 | 832 | ||
833 | static int make_request(mddev_t *mddev, struct bio * bio) | 833 | static void make_request(mddev_t *mddev, struct bio * bio) |
834 | { | 834 | { |
835 | conf_t *conf = mddev->private; | 835 | conf_t *conf = mddev->private; |
836 | mirror_info_t *mirror; | 836 | mirror_info_t *mirror; |
@@ -849,7 +849,7 @@ static int make_request(mddev_t *mddev, struct bio * bio) | |||
849 | 849 | ||
850 | if (unlikely(bio->bi_rw & REQ_FLUSH)) { | 850 | if (unlikely(bio->bi_rw & REQ_FLUSH)) { |
851 | md_flush_request(mddev, bio); | 851 | md_flush_request(mddev, bio); |
852 | return 0; | 852 | return; |
853 | } | 853 | } |
854 | 854 | ||
855 | /* If this request crosses a chunk boundary, we need to | 855 | /* If this request crosses a chunk boundary, we need to |
@@ -881,10 +881,8 @@ static int make_request(mddev_t *mddev, struct bio * bio) | |||
881 | conf->nr_waiting++; | 881 | conf->nr_waiting++; |
882 | spin_unlock_irq(&conf->resync_lock); | 882 | spin_unlock_irq(&conf->resync_lock); |
883 | 883 | ||
884 | if (make_request(mddev, &bp->bio1)) | 884 | make_request(mddev, &bp->bio1); |
885 | generic_make_request(&bp->bio1); | 885 | make_request(mddev, &bp->bio2); |
886 | if (make_request(mddev, &bp->bio2)) | ||
887 | generic_make_request(&bp->bio2); | ||
888 | 886 | ||
889 | spin_lock_irq(&conf->resync_lock); | 887 | spin_lock_irq(&conf->resync_lock); |
890 | conf->nr_waiting--; | 888 | conf->nr_waiting--; |
@@ -892,14 +890,14 @@ static int make_request(mddev_t *mddev, struct bio * bio) | |||
892 | spin_unlock_irq(&conf->resync_lock); | 890 | spin_unlock_irq(&conf->resync_lock); |
893 | 891 | ||
894 | bio_pair_release(bp); | 892 | bio_pair_release(bp); |
895 | return 0; | 893 | return; |
896 | bad_map: | 894 | bad_map: |
897 | printk("md/raid10:%s: make_request bug: can't convert block across chunks" | 895 | printk("md/raid10:%s: make_request bug: can't convert block across chunks" |
898 | " or bigger than %dk %llu %d\n", mdname(mddev), chunk_sects/2, | 896 | " or bigger than %dk %llu %d\n", mdname(mddev), chunk_sects/2, |
899 | (unsigned long long)bio->bi_sector, bio->bi_size >> 10); | 897 | (unsigned long long)bio->bi_sector, bio->bi_size >> 10); |
900 | 898 | ||
901 | bio_io_error(bio); | 899 | bio_io_error(bio); |
902 | return 0; | 900 | return; |
903 | } | 901 | } |
904 | 902 | ||
905 | md_write_start(mddev, bio); | 903 | md_write_start(mddev, bio); |
@@ -942,7 +940,7 @@ read_again: | |||
942 | slot = r10_bio->read_slot; | 940 | slot = r10_bio->read_slot; |
943 | if (disk < 0) { | 941 | if (disk < 0) { |
944 | raid_end_bio_io(r10_bio); | 942 | raid_end_bio_io(r10_bio); |
945 | return 0; | 943 | return; |
946 | } | 944 | } |
947 | mirror = conf->mirrors + disk; | 945 | mirror = conf->mirrors + disk; |
948 | 946 | ||
@@ -990,7 +988,7 @@ read_again: | |||
990 | goto read_again; | 988 | goto read_again; |
991 | } else | 989 | } else |
992 | generic_make_request(read_bio); | 990 | generic_make_request(read_bio); |
993 | return 0; | 991 | return; |
994 | } | 992 | } |
995 | 993 | ||
996 | /* | 994 | /* |
@@ -1158,7 +1156,6 @@ retry_write: | |||
1158 | 1156 | ||
1159 | if (do_sync || !mddev->bitmap || !plugged) | 1157 | if (do_sync || !mddev->bitmap || !plugged) |
1160 | md_wakeup_thread(mddev->thread); | 1158 | md_wakeup_thread(mddev->thread); |
1161 | return 0; | ||
1162 | } | 1159 | } |
1163 | 1160 | ||
1164 | static void status(struct seq_file *seq, mddev_t *mddev) | 1161 | static void status(struct seq_file *seq, mddev_t *mddev) |