sysfs_read currently tried to look in sysfs even in no valid sys_name
was found. Don't to that.
Signed-off-by: NeilBrown <neilb@suse.de>
void sysfs_init(struct mdinfo *mdi, int fd, int devnum)
{
+ mdi->sys_name[0] = 0;
if (fd >= 0) {
mdu_version_t vers;
if (ioctl(fd, RAID_VERSION, &vers) != 0)
return sra;
memset(sra, 0, sizeof(*sra));
sysfs_init(sra, fd, devnum);
+ if (sra->sys_name[0] == 0) {
+ free(sra);
+ return NULL;
+ }
sprintf(fname, "/sys/block/%s/md/", sra->sys_name);
base = fname + strlen(fname);