]> err.no Git - linux-2.6/blobdiff - drivers/md/raid10.c
V4L/DVB (4310): Saa7134: rename dmasound_{init, exit}
[linux-2.6] / drivers / md / raid10.c
index 4db34edfd87f833589f21c6f774f1bd8209893cf..016ddb831c9b393dfb44c52076dbcbc4f4750b96 100644 (file)
@@ -1492,6 +1492,10 @@ static void raid10d(mddev_t *mddev)
                                                                         s<<9, conf->tmppage, READ) == 0)
                                                                /* Well, this device is dead */
                                                                md_error(mddev, rdev);
+                                                       else
+                                                               printk(KERN_INFO "raid10:%s: read error corrected (%d sectors at %llu on %s)\n",
+                                                                      mdname(mddev), s, (unsigned long long)(sect+rdev->data_offset), bdevname(rdev->bdev, b));
+
                                                        rdev_dec_pending(rdev, mddev);
                                                        rcu_read_lock();
                                                }
@@ -2060,7 +2064,13 @@ static int run(mddev_t *mddev)
        /*
         * Ok, everything is just fine now
         */
-       size = conf->stride * conf->raid_disks;
+       if (conf->far_offset) {
+               size = mddev->size >> (conf->chunk_shift-1);
+               size *= conf->raid_disks;
+               size <<= conf->chunk_shift;
+               sector_div(size, conf->far_copies);
+       } else
+               size = conf->stride * conf->raid_disks;
        sector_div(size, conf->near_copies);
        mddev->array_size = size/2;
        mddev->resync_max_sectors = size;