When -I get a new device for a container and tries to incrementally
assemble the container array, it calls sysfs_set_array to create the
array without first checking if it already exists. This produces
unpleasant error messages.
So check first.
Signed-off-by: NeilBrown <neilb@suse.de>
}
for (ra = list ; ra ; ra = ra->next) {
- struct mdinfo *dev;
+ struct mdinfo *dev, *sra;
int devnum = -1;
int mdfd;
char chosen_name[1024];
return 2;
}
+
sysfs_init(ra, mdfd, 0);
- sysfs_set_array(ra, md_get_version(mdfd));
+
+ sra = sysfs_read(mdfd, 0, GET_VERSION);
+ if (sra == NULL || strcmp(sra->text_version, ra->text_version) != 0)
+ if (sysfs_set_array(ra, md_get_version(mdfd)) != 0)
+ return 1;
+ if (sra)
+ sysfs_free(sra);
+
for (dev = ra->devs; dev; dev = dev->next)
if (sysfs_add_disk(ra, dev) == 0)
working++;