Incremental: fix adding devices with --incremental

We should use 'info' here, not 'info2'.
info2 refers to some other device (There may not even be one).l
info is *this* disk.

This is particularly important for getting info.disk.state
correct, which the kernel depends on to get 're-add' functionality
correct.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2012-03-22 15:53:53 +11:00
parent 0073a6e189
commit 69fe207ed6
1 changed files with 4 additions and 4 deletions

View File

@ -414,19 +414,19 @@ int Incremental(char *devname, int verbose, int runstop,
goto out_unlock;
}
}
info2.disk.major = major(stb.st_rdev);
info2.disk.minor = minor(stb.st_rdev);
info.disk.major = major(stb.st_rdev);
info.disk.minor = minor(stb.st_rdev);
/* add disk needs to know about containers */
if (st->ss->external)
sra->array.level = LEVEL_CONTAINER;
err = add_disk(mdfd, st, sra, &info2);
err = add_disk(mdfd, st, sra, &info);
if (err < 0 && errno == EBUSY) {
/* could be another device present with the same
* disk.number. Find and reject any such
*/
find_reject(mdfd, st, sra, info.disk.number,
info.events, verbose, chosen_name);
err = add_disk(mdfd, st, sra, &info2);
err = add_disk(mdfd, st, sra, &info);
}
if (err < 0) {
fprintf(stderr, Name ": failed to add %s to %s: %s.\n",