summaryrefslogtreecommitdiffstats
path: root/monitor.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2008-09-15 20:58:42 -0700
committerDan Williams <dan.j.williams@intel.com>2008-09-15 20:58:42 -0700
commitd797a0621f08c799ca7c21a2b3b8eedaf19fc7aa (patch)
tree38d6b2f56df7a649056525248df70cc2415a8ca5 /monitor.c
parent8ed3e5e1bf5b08884b68c3ef5c3e393adaa3c9ba (diff)
downloadmdadm-d797a0621f08c799ca7c21a2b3b8eedaf19fc7aa.tar.gz
mdadm-d797a0621f08c799ca7c21a2b3b8eedaf19fc7aa.tar.xz
mdadm-d797a0621f08c799ca7c21a2b3b8eedaf19fc7aa.zip
monitor: mark clean on active-idle
This also handles the case where 'clean' is set directly. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'monitor.c')
-rw-r--r--monitor.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/monitor.c b/monitor.c
index 45b5d5b..ecf0528 100644
--- a/monitor.c
+++ b/monitor.c
@@ -231,10 +231,14 @@ static int read_and_act(struct active_array *a)
a->next_state = active;
}
if (a->curr_state == active_idle) {
- /* Set array to 'clean' FIRST, then
- * a->ss->mark_clean(a, ~0ULL);
- * just ignore for now.
+ /* Set array to 'clean' FIRST, then mark clean
+ * in the metadata
*/
+ a->next_state = clean;
+ }
+ if (a->curr_state == clean) {
+ get_resync_start(a);
+ a->container->ss->set_array_state(a, 1);
}
if (a->curr_state == readonly) {