* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.