* Subject:[PATCH 007:013]: raid0 , change map_sector arguements
@ 2009-06-16 21:54 raz ben yehuda
0 siblings, 0 replies; only message in thread
From: raz ben yehuda @ 2009-06-16 21:54 UTC (permalink / raw)
To: linux raid, Neil Brown
have map_sector get raid0_conf instead of mddev
raid0.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
Signed-off-by: razb <raziebe@gmail.com>
---
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
index c3fd471..eaad2f9 100644
--- a/drivers/md/raid0.c
+++ b/drivers/md/raid0.c
@@ -441,13 +441,15 @@ static struct strip_zone *find_zone(struct raid0_private_data *conf,
* remaps the bio to the target device. we separate two flows.
* power 2 flow and a general flow for the sake of perfromance
*/
-static mdk_rdev_t *map_sector(mddev_t *mddev, struct strip_zone *zone,
- sector_t sector, sector_t *sector_offset)
+static mdk_rdev_t *map_sector(raid0_conf_t *conf,
+ sector_t chunk_sects,
+ int raid_disks,
+ struct strip_zone *zone,
+ sector_t sector,
+ sector_t *sector_offset)
{
unsigned int sect_in_chunk;
sector_t chunk;
- raid0_conf_t *conf = mddev->private;
- unsigned int chunk_sects = mddev->chunk_sectors;
if (is_power_of_2(chunk_sects)) {
int chunksect_bits = ffz(~chunk_sects);
@@ -469,7 +471,7 @@ static mdk_rdev_t *map_sector(mddev_t *mddev, struct strip_zone *zone,
* + the position in the chunk
*/
*sector_offset = (chunk * chunk_sects) + sect_in_chunk;
- return conf->devlist[(zone - conf->strip_zone)*mddev->raid_disks
+ return conf->devlist[(zone - conf->strip_zone) * raid_disks
+ sector_div(sector, zone->nb_dev)];
}
@@ -540,8 +542,12 @@ static int raid0_make_request(struct request_queue *q, struct bio *bio)
zone = find_zone(mddev->private, §or_offset);
if (!zone)
BUG();
- tmp_dev = map_sector(mddev, zone, bio->bi_sector,
- §or_offset);
+ tmp_dev = map_sector(mddev->private,
+ mddev->chunk_sectors,
+ mddev->raid_disks,
+ zone,
+ bio->bi_sector,
+ §or_offset);
bio->bi_bdev = tmp_dev->bdev;
bio->bi_sector = sector_offset + zone->dev_start +
tmp_dev->data_offset;
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2009-06-16 21:54 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-16 21:54 Subject:[PATCH 007:013]: raid0 , change map_sector arguements raz ben yehuda
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox