ddf: set vcnum correctly when creating a new virtual device in conflist
We weren't setting ->vcnum at all when an array was added. This meant that a subsequent device failure could be assigned to the wrong array. Reported-by: Albert Pauw <albert.pauw@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
e1316fab98
commit
1502a43a08
|
@ -3417,6 +3417,14 @@ static void ddf_process_update(struct supertype *st,
|
|||
memcpy(&vcl->conf, vc, update->len);
|
||||
vcl->lba_offset = (__u64*)
|
||||
&vcl->conf.phys_refnum[mppe];
|
||||
for (ent = 0;
|
||||
ent < __be16_to_cpu(ddf->virt->populated_vdes);
|
||||
ent++)
|
||||
if (memcmp(vc->guid, ddf->virt->entries[ent].guid,
|
||||
DDF_GUID_LEN) == 0) {
|
||||
vcl->vcnum = ent;
|
||||
break;
|
||||
}
|
||||
ddf->conflist = vcl;
|
||||
}
|
||||
/* Now make sure vlist is correct for each dl. */
|
||||
|
|
Loading…
Reference in New Issue