diff --git a/[refs] b/[refs] index ec0914a824ef..200974093848 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f4370781d83cd2e52eb515e4663155e8091e4d4e +refs/heads/master: 31b65a0d3894566191b91fbadd122c354a363b5d diff --git a/trunk/drivers/md/md.c b/trunk/drivers/md/md.c index e4e161372a3e..9f76e0cd7805 100644 --- a/trunk/drivers/md/md.c +++ b/trunk/drivers/md/md.c @@ -1062,6 +1062,11 @@ static int super_1_load(mdk_rdev_t *rdev, mdk_rdev_t *refdev, int minor_version) if (rdev->sb_size & bmask) rdev-> sb_size = (rdev->sb_size | bmask)+1; + if (sb->level == cpu_to_le32(LEVEL_MULTIPATH)) + rdev->desc_nr = -1; + else + rdev->desc_nr = le32_to_cpu(sb->dev_number); + if (refdev == 0) ret = 1; else { @@ -1171,7 +1176,6 @@ static int super_1_validate(mddev_t *mddev, mdk_rdev_t *rdev) } if (mddev->level != LEVEL_MULTIPATH) { int role; - rdev->desc_nr = le32_to_cpu(sb->dev_number); role = le16_to_cpu(sb->dev_roles[rdev->desc_nr]); switch(role) { case 0xffff: /* spare */