From: Williams, Dan J Date: Thu, 15 Dec 2011 02:21:07 +0000 (-0800) Subject: imsm: FIX: UT '08imsm-overlap' fails X-Git-Tag: mdadm-3.2.3~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5fe62b9455b6b43f050f3a52610ce1048a44623c;p=thirdparty%2Fmdadm.git imsm: FIX: UT '08imsm-overlap' fails Make test for all sub arrays having the same number of devices dependant on the option ROM requirements being checked. 08imsm-overlap disables the OROM check but then fails because this test causes it to. Reported-by: Adam Kwolek Signed-off-by: NeilBrown --- diff --git a/super-intel.c b/super-intel.c index 9074485a..0e775379 100644 --- a/super-intel.c +++ b/super-intel.c @@ -5314,12 +5314,6 @@ static int validate_geometry_imsm_volume(struct supertype *st, int level, mpb = super->anchor; - if (mpb->num_raid_devs > 0 && mpb->num_disks != raiddisks) { - fprintf(stderr, Name ": the option-rom requires all " - "member disks to be a member of all volumes.\n"); - return 0; - } - if (!validate_geometry_imsm_orom(super, level, layout, raiddisks, chunk, verbose)) { fprintf(stderr, Name ": RAID gemetry validation failed. " "Cannot proceed with the action(s).\n"); @@ -5398,6 +5392,11 @@ static int validate_geometry_imsm_volume(struct supertype *st, int level, fprintf(stderr, Name ": The option-rom requires all member" " disks to be a member of all volumes\n"); return 0; + } else if (super->orom && mpb->num_raid_devs > 0 && + mpb->num_disks != raiddisks) { + fprintf(stderr, Name ": The option-rom requires all member" + " disks to be a member of all volumes\n"); + return 0; } /* retrieve the largest free space block */