managemon: Don't do spare assignment while any updates are pending.

Spare assignment requires full knowledge of array state.  A pending
update might modify that state (such as a pending spare assignment)
so don't try while there are updates pending.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2011-03-15 14:51:12 +11:00
parent 02c39ab1d5
commit 0c4f6e378b
1 changed files with 6 additions and 1 deletions

View File

@ -398,7 +398,12 @@ static void manage_member(struct mdstat_ent *mdstat,
a->info.array.raid_disks = mdstat->raid_disks;
// MORE
if (a->check_degraded) {
/* We don't check the array while any update is pending, as it
* might container a change (such as a spare assignment) which
* could affect our decisions.
*/
if (a->check_degraded &&
update_queue == NULL && update_queue_pending == NULL) {
struct metadata_update *updates = NULL;
struct mdinfo *newdev = NULL;
struct active_array *newa;