diff options
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/md.c | 8 | ||||
-rw-r--r-- | drivers/md/multipath.c | 2 | ||||
-rw-r--r-- | drivers/md/raid1.c | 4 | ||||
-rw-r--r-- | drivers/md/raid10.c | 4 |
4 files changed, 9 insertions, 9 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 7daa7b1e145f..50ab4a936e30 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -2003,6 +2003,7 @@ static mdk_rdev_t *md_import_device(dev_t newdev, int super_format, int super_mi | |||
2003 | kobject_init(&rdev->kobj); | 2003 | kobject_init(&rdev->kobj); |
2004 | 2004 | ||
2005 | rdev->desc_nr = -1; | 2005 | rdev->desc_nr = -1; |
2006 | rdev->saved_raid_disk = -1; | ||
2006 | rdev->flags = 0; | 2007 | rdev->flags = 0; |
2007 | rdev->data_offset = 0; | 2008 | rdev->data_offset = 0; |
2008 | rdev->sb_events = 0; | 2009 | rdev->sb_events = 0; |
@@ -4044,11 +4045,8 @@ static int update_size(mddev_t *mddev, unsigned long size) | |||
4044 | return -EBUSY; | 4045 | return -EBUSY; |
4045 | ITERATE_RDEV(mddev,rdev,tmp) { | 4046 | ITERATE_RDEV(mddev,rdev,tmp) { |
4046 | sector_t avail; | 4047 | sector_t avail; |
4047 | if (rdev->sb_offset > rdev->data_offset) | 4048 | avail = rdev->size * 2; |
4048 | avail = (rdev->sb_offset*2) - rdev->data_offset; | 4049 | |
4049 | else | ||
4050 | avail = get_capacity(rdev->bdev->bd_disk) | ||
4051 | - rdev->data_offset; | ||
4052 | if (fit && (size == 0 || size > avail/2)) | 4050 | if (fit && (size == 0 || size > avail/2)) |
4053 | size = avail/2; | 4051 | size = avail/2; |
4054 | if (avail < ((sector_t)size << 1)) | 4052 | if (avail < ((sector_t)size << 1)) |
diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c index a6260f0e3b9e..14da37fee37b 100644 --- a/drivers/md/multipath.c +++ b/drivers/md/multipath.c | |||
@@ -277,6 +277,7 @@ static void multipath_error (mddev_t *mddev, mdk_rdev_t *rdev) | |||
277 | set_bit(Faulty, &rdev->flags); | 277 | set_bit(Faulty, &rdev->flags); |
278 | set_bit(MD_CHANGE_DEVS, &mddev->flags); | 278 | set_bit(MD_CHANGE_DEVS, &mddev->flags); |
279 | conf->working_disks--; | 279 | conf->working_disks--; |
280 | mddev->degraded++; | ||
280 | printk(KERN_ALERT "multipath: IO failure on %s," | 281 | printk(KERN_ALERT "multipath: IO failure on %s," |
281 | " disabling IO path. \n Operation continuing" | 282 | " disabling IO path. \n Operation continuing" |
282 | " on %d IO paths.\n", | 283 | " on %d IO paths.\n", |
@@ -336,6 +337,7 @@ static int multipath_add_disk(mddev_t *mddev, mdk_rdev_t *rdev) | |||
336 | blk_queue_max_sectors(mddev->queue, PAGE_SIZE>>9); | 337 | blk_queue_max_sectors(mddev->queue, PAGE_SIZE>>9); |
337 | 338 | ||
338 | conf->working_disks++; | 339 | conf->working_disks++; |
340 | mddev->degraded--; | ||
339 | rdev->raid_disk = path; | 341 | rdev->raid_disk = path; |
340 | set_bit(In_sync, &rdev->flags); | 342 | set_bit(In_sync, &rdev->flags); |
341 | rcu_assign_pointer(p->rdev, rdev); | 343 | rcu_assign_pointer(p->rdev, rdev); |
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index dc9d2def0270..656fae912fe3 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -1474,8 +1474,8 @@ static void fix_read_error(conf_t *conf, int read_disk, | |||
1474 | "raid1:%s: read error corrected " | 1474 | "raid1:%s: read error corrected " |
1475 | "(%d sectors at %llu on %s)\n", | 1475 | "(%d sectors at %llu on %s)\n", |
1476 | mdname(mddev), s, | 1476 | mdname(mddev), s, |
1477 | (unsigned long long)sect + | 1477 | (unsigned long long)(sect + |
1478 | rdev->data_offset, | 1478 | rdev->data_offset), |
1479 | bdevname(rdev->bdev, b)); | 1479 | bdevname(rdev->bdev, b)); |
1480 | } | 1480 | } |
1481 | } | 1481 | } |
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 74f17a9a6ebb..7492d6033ac6 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
@@ -1470,8 +1470,8 @@ static void fix_read_error(conf_t *conf, mddev_t *mddev, r10bio_t *r10_bio) | |||
1470 | "raid10:%s: read error corrected" | 1470 | "raid10:%s: read error corrected" |
1471 | " (%d sectors at %llu on %s)\n", | 1471 | " (%d sectors at %llu on %s)\n", |
1472 | mdname(mddev), s, | 1472 | mdname(mddev), s, |
1473 | (unsigned long long)sect+ | 1473 | (unsigned long long)(sect+ |
1474 | rdev->data_offset, | 1474 | rdev->data_offset), |
1475 | bdevname(rdev->bdev, b)); | 1475 | bdevname(rdev->bdev, b)); |
1476 | 1476 | ||
1477 | rdev_dec_pending(rdev, mddev); | 1477 | rdev_dec_pending(rdev, mddev); |