git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://neil.brown.name/md
[pandora-kernel.git]
/
drivers
/
md
/
linear.c
diff --git
a/drivers/md/linear.c
b/drivers/md/linear.c
index
6a866d7
..
b1eebf8
100644
(file)
--- a/
drivers/md/linear.c
+++ b/
drivers/md/linear.c
@@
-122,13
+122,13
@@
static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
return NULL;
cnt = 0;
return NULL;
cnt = 0;
- conf->array_s
ize
= 0;
+ conf->array_s
ectors
= 0;
rdev_for_each(rdev, tmp, mddev) {
int j = rdev->raid_disk;
dev_info_t *disk = conf->disks + j;
rdev_for_each(rdev, tmp, mddev) {
int j = rdev->raid_disk;
dev_info_t *disk = conf->disks + j;
- if (j < 0 || j > raid_disks || disk->rdev) {
+ if (j < 0 || j >
=
raid_disks || disk->rdev) {
printk("linear: disk numbering problem. Aborting!\n");
goto out;
}
printk("linear: disk numbering problem. Aborting!\n");
goto out;
}
@@
-146,7
+146,7
@@
static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
blk_queue_max_sectors(mddev->queue, PAGE_SIZE>>9);
disk->size = rdev->size;
blk_queue_max_sectors(mddev->queue, PAGE_SIZE>>9);
disk->size = rdev->size;
- conf->array_s
ize += rdev->size
;
+ conf->array_s
ectors += rdev->size * 2
;
cnt++;
}
cnt++;
}
@@
-155,7
+155,7
@@
static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
goto out;
}
goto out;
}
- min_spacing = conf->array_s
ize
;
+ min_spacing = conf->array_s
ectors / 2
;
sector_div(min_spacing, PAGE_SIZE/sizeof(struct dev_info *));
/* min_spacing is the minimum spacing that will fit the hash
sector_div(min_spacing, PAGE_SIZE/sizeof(struct dev_info *));
/* min_spacing is the minimum spacing that will fit the hash
@@
-164,7
+164,7
@@
static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
* that is larger than min_spacing as use the size of that as
* the actual spacing
*/
* that is larger than min_spacing as use the size of that as
* the actual spacing
*/
- conf->hash_spacing = conf->array_s
ize
;
+ conf->hash_spacing = conf->array_s
ectors / 2
;
for (i=0; i < cnt-1 ; i++) {
sector_t sz = 0;
int j;
for (i=0; i < cnt-1 ; i++) {
sector_t sz = 0;
int j;
@@
-194,7
+194,7
@@
static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
unsigned round;
unsigned long base;
unsigned round;
unsigned long base;
- sz = conf->array_s
ize >> conf->preshift
;
+ sz = conf->array_s
ectors >> (conf->preshift + 1)
;
sz += 1; /* force round-up */
base = conf->hash_spacing >> conf->preshift;
round = sector_div(sz, base);
sz += 1; /* force round-up */
base = conf->hash_spacing >> conf->preshift;
round = sector_div(sz, base);
@@
-221,7
+221,7
@@
static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
curr_offset = 0;
i = 0;
for (curr_offset = 0;
curr_offset = 0;
i = 0;
for (curr_offset = 0;
- curr_offset < conf->array_s
ize
;
+ curr_offset < conf->array_s
ectors / 2
;
curr_offset += conf->hash_spacing) {
while (i < raid_disks-1 &&
curr_offset += conf->hash_spacing) {
while (i < raid_disks-1 &&
@@
-258,7
+258,7
@@
static int linear_run (mddev_t *mddev)
if (!conf)
return 1;
mddev->private = conf;
if (!conf)
return 1;
mddev->private = conf;
- mddev->array_s
ize = conf->array_size
;
+ mddev->array_s
ectors = conf->array_sectors
;
blk_queue_merge_bvec(mddev->queue, linear_mergeable_bvec);
mddev->queue->unplug_fn = linear_unplug;
blk_queue_merge_bvec(mddev->queue, linear_mergeable_bvec);
mddev->queue->unplug_fn = linear_unplug;
@@
-292,8
+292,8
@@
static int linear_add(mddev_t *mddev, mdk_rdev_t *rdev)
newconf->prev = mddev_to_conf(mddev);
mddev->private = newconf;
mddev->raid_disks++;
newconf->prev = mddev_to_conf(mddev);
mddev->private = newconf;
mddev->raid_disks++;
- mddev->array_s
ize = newconf->array_size
;
- set_capacity(mddev->gendisk, mddev->array_s
ize << 1
);
+ mddev->array_s
ectors = newconf->array_sectors
;
+ set_capacity(mddev->gendisk, mddev->array_s
ectors
);
return 0;
}
return 0;
}