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:
NeilBrown 2013-12-05 08:58:21 +11:00
parent b11fe74db0
commit 5dd29dafa2
2 changed files with 1 additions and 3 deletions

View File

@ -847,10 +847,10 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv,
continue;
if (disc.major == 0 && disc.minor == 0)
continue;
found++;
if (!(disc.state & (1<<MD_DISK_SYNC)))
continue;
avail[disc.raid_disk] = 1;
found++;
}
array_failed = !enough(array->level, array->raid_disks,
array->layout, 1, avail);

2
util.c
View File

@ -387,7 +387,6 @@ int enough_fd(int fd)
{
struct mdu_array_info_s array;
struct mdu_disk_info_s disk;
int avail_disks = 0;
int i, rv;
char *avail;
@ -407,7 +406,6 @@ int enough_fd(int fd)
continue;
if (disk.raid_disk < 0 || disk.raid_disk >= array.raid_disks)
continue;
avail_disks++;
avail[disk.raid_disk] = 1;
}
/* This is used on an active array, so assume it is clean */