Two small fixes related to enough()
1/ enough_fd doesn't use avail_disks any more, so discard it. 2/ Manage_Add increments 'found' at the wrong place, so it can waste time before calling enough(). Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
b11fe74db0
commit
5dd29dafa2
2
Manage.c
2
Manage.c
|
@ -847,10 +847,10 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv,
|
||||||
continue;
|
continue;
|
||||||
if (disc.major == 0 && disc.minor == 0)
|
if (disc.major == 0 && disc.minor == 0)
|
||||||
continue;
|
continue;
|
||||||
|
found++;
|
||||||
if (!(disc.state & (1<<MD_DISK_SYNC)))
|
if (!(disc.state & (1<<MD_DISK_SYNC)))
|
||||||
continue;
|
continue;
|
||||||
avail[disc.raid_disk] = 1;
|
avail[disc.raid_disk] = 1;
|
||||||
found++;
|
|
||||||
}
|
}
|
||||||
array_failed = !enough(array->level, array->raid_disks,
|
array_failed = !enough(array->level, array->raid_disks,
|
||||||
array->layout, 1, avail);
|
array->layout, 1, avail);
|
||||||
|
|
2
util.c
2
util.c
|
@ -387,7 +387,6 @@ int enough_fd(int fd)
|
||||||
{
|
{
|
||||||
struct mdu_array_info_s array;
|
struct mdu_array_info_s array;
|
||||||
struct mdu_disk_info_s disk;
|
struct mdu_disk_info_s disk;
|
||||||
int avail_disks = 0;
|
|
||||||
int i, rv;
|
int i, rv;
|
||||||
char *avail;
|
char *avail;
|
||||||
|
|
||||||
|
@ -407,7 +406,6 @@ int enough_fd(int fd)
|
||||||
continue;
|
continue;
|
||||||
if (disk.raid_disk < 0 || disk.raid_disk >= array.raid_disks)
|
if (disk.raid_disk < 0 || disk.raid_disk >= array.raid_disks)
|
||||||
continue;
|
continue;
|
||||||
avail_disks++;
|
|
||||||
avail[disk.raid_disk] = 1;
|
avail[disk.raid_disk] = 1;
|
||||||
}
|
}
|
||||||
/* This is used on an active array, so assume it is clean */
|
/* This is used on an active array, so assume it is clean */
|
||||||
|
|
Loading…
Reference in New Issue