summaryrefslogtreecommitdiff
path: root/managemon.c
diff options
context:
space:
mode:
Diffstat (limited to 'managemon.c')
-rw-r--r--managemon.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/managemon.c b/managemon.c
index 15b6e69..d6c57f7 100644
--- a/managemon.c
+++ b/managemon.c
@@ -465,7 +465,12 @@ static void manage_member(struct mdstat_ent *mdstat,
}
}
- if (a->check_degraded && !frozen) {
+ /* 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 && !frozen &&
+ update_queue == NULL && update_queue_pending == NULL) {
struct metadata_update *updates = NULL;
struct mdinfo *newdev = NULL;
struct active_array *newa;