ddf: fail creation of new subarray with same name as old.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2010-12-01 09:55:35 +11:00
parent f49208ec69
commit 97c9c10014
2 changed files with 16 additions and 0 deletions

View File

@ -1961,6 +1961,19 @@ static int init_super_ddf_bvd(struct supertype *st,
return 0;
}
if (name)
for (venum = 0; venum < __be16_to_cpu(ddf->virt->max_vdes); venum++)
if (!all_ff(ddf->virt->entries[venum].guid)) {
char *n = ddf->virt->entries[venum].name;
if (strncmp(name, n, 16) == 0) {
fprintf(stderr, Name ": This ddf already"
" has an array called %s\n",
name);
return 0;
}
}
for (venum = 0; venum < __be16_to_cpu(ddf->virt->max_vdes); venum++)
if (all_ff(ddf->virt->entries[venum].guid))
break;

View File

@ -10,6 +10,9 @@
mdadm -CR /dev/md/ddf0 -e ddf -n 5 $dev8 $dev9 $dev10 $dev11 $dev12
mdadm -CR r0 -l0 -n5 /dev/md/ddf0 -z 5000
if mdadm -CR r0 -l1 -n2 /dev/md/ddf0 -z 5000
then echo >&2 create with same name should fail ; exit 1
fi
mdadm -CR r1 -l1 -n2 /dev/md/ddf0
mdadm -CR r5 -l5 -n3 /dev/md/ddf0
testdev /dev/md/r0 5 5000 512