diff options
Diffstat (limited to 'monitor.c')
-rw-r--r-- | monitor.c | 13 |
1 files changed, 6 insertions, 7 deletions
@@ -271,7 +271,6 @@ static int read_and_act(struct active_array *a) } } - for (mdi = a->info.devs ; mdi ; mdi = mdi->next) { if (mdi->curr_state & DS_FAULTY) { a->container->ss->set_disk(a, mdi->disk.raid_disk, @@ -281,12 +280,6 @@ static int read_and_act(struct active_array *a) } } - if (check_degraded) { - /* manager will do the actual check */ - a->check_degraded = 1; - signal_manager(); - } - a->container->ss->sync_metadata(a->container); /* Effect state changes in the array */ @@ -323,6 +316,12 @@ static int read_and_act(struct active_array *a) mdi->next_state = 0; } + if (check_degraded) { + /* manager will do the actual check */ + a->check_degraded = 1; + signal_manager(); + } + if (deactivate) a->container = NULL; |