DDF: allow for unused slots when creating map list for getinfo_super_ddf.
Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
4fe903aa8b
commit
708997ffb7
12
super-ddf.c
12
super-ddf.c
|
@ -2042,10 +2042,14 @@ static void getinfo_super_ddf(struct supertype *st, struct mdinfo *info, char *m
|
||||||
uuid_from_super_ddf(st, info->uuid);
|
uuid_from_super_ddf(st, info->uuid);
|
||||||
|
|
||||||
if (map) {
|
if (map) {
|
||||||
int i;
|
int i, e = 0;
|
||||||
for (i = 0 ; i < map_disks; i++) {
|
int max = be16_to_cpu(ddf->phys->max_pdes);
|
||||||
if (i < info->array.raid_disks &&
|
for (i = e = 0 ; i < map_disks ; i++, e++) {
|
||||||
!(be16_to_cpu(ddf->phys->entries[i].state)
|
while (e < max &&
|
||||||
|
be32_to_cpu(ddf->phys->entries[e].refnum) == 0xffffffff)
|
||||||
|
e++;
|
||||||
|
if (i < info->array.raid_disks && e < max &&
|
||||||
|
!(be16_to_cpu(ddf->phys->entries[e].state)
|
||||||
& DDF_Failed))
|
& DDF_Failed))
|
||||||
map[i] = 1;
|
map[i] = 1;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue