diff options
Diffstat (limited to 'drivers/md/raid0.c')
| -rw-r--r-- | drivers/md/raid0.c | 23 | 
1 files changed, 10 insertions, 13 deletions
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c index 0eb08a4df75..7294bd115e3 100644 --- a/drivers/md/raid0.c +++ b/drivers/md/raid0.c @@ -20,6 +20,7 @@  #include <linux/blkdev.h>  #include <linux/seq_file.h> +#include <linux/module.h>  #include <linux/slab.h>  #include "md.h"  #include "raid0.h" @@ -468,7 +469,7 @@ static inline int is_io_in_chunk_boundary(struct mddev *mddev,  	}  } -static int raid0_make_request(struct mddev *mddev, struct bio *bio) +static void raid0_make_request(struct mddev *mddev, struct bio *bio)  {  	unsigned int chunk_sects;  	sector_t sector_offset; @@ -477,7 +478,7 @@ static int raid0_make_request(struct mddev *mddev, struct bio *bio)  	if (unlikely(bio->bi_rw & REQ_FLUSH)) {  		md_flush_request(mddev, bio); -		return 0; +		return;  	}  	chunk_sects = mddev->chunk_sectors; @@ -497,13 +498,10 @@ static int raid0_make_request(struct mddev *mddev, struct bio *bio)  		else  			bp = bio_split(bio, chunk_sects -  				       sector_div(sector, chunk_sects)); -		if (raid0_make_request(mddev, &bp->bio1)) -			generic_make_request(&bp->bio1); -		if (raid0_make_request(mddev, &bp->bio2)) -			generic_make_request(&bp->bio2); - +		raid0_make_request(mddev, &bp->bio1); +		raid0_make_request(mddev, &bp->bio2);  		bio_pair_release(bp); -		return 0; +		return;  	}  	sector_offset = bio->bi_sector; @@ -513,10 +511,9 @@ static int raid0_make_request(struct mddev *mddev, struct bio *bio)  	bio->bi_bdev = tmp_dev->bdev;  	bio->bi_sector = sector_offset + zone->dev_start +  		tmp_dev->data_offset; -	/* -	 * Let the main block layer submit the IO and resolve recursion: -	 */ -	return 1; + +	generic_make_request(bio); +	return;  bad_map:  	printk("md/raid0:%s: make_request bug: can't convert block across chunks" @@ -525,7 +522,7 @@ bad_map:  	       (unsigned long long)bio->bi_sector, bio->bi_size >> 10);  	bio_io_error(bio); -	return 0; +	return;  }  static void raid0_status(struct seq_file *seq, struct mddev *mddev)  |