diff options
author | Neil Brown <neilb@suse.de> | 2008-05-27 09:18:54 +1000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2008-05-27 09:18:54 +1000 |
commit | ed9d66aadec7ae41751e3a95352628814b47fbad (patch) | |
tree | 2a5212c3f1fbc27b09b853c2d582953a7b4e695e /monitor.c | |
parent | 77402e51054701cd02ff07f8d5d43ef23e640226 (diff) | |
download | mdadm-ed9d66aadec7ae41751e3a95352628814b47fbad.tar.gz mdadm-ed9d66aadec7ae41751e3a95352628814b47fbad.tar.xz mdadm-ed9d66aadec7ae41751e3a95352628814b47fbad.zip |
Change mark_clean to set_array_state.
DDF needs more fine grained understanding of the array state.
Diffstat (limited to 'monitor.c')
-rw-r--r-- | monitor.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -232,12 +232,13 @@ static int read_and_act(struct active_array *a) if (a->curr_state <= inactive && a->prev_state > inactive) { /* array has been stopped */ - a->container->ss->mark_clean(a, a->resync_start); + a->container->ss->set_array_state(a, 1); a->next_state = clear; deactivate = 1; } if (a->curr_state == write_pending) { - a->container->ss->mark_clean(a, 0); + get_resync_start(a); + a->container->ss->set_array_state(a, 0); a->next_state = active; } if (a->curr_state == active_idle) { @@ -253,10 +254,11 @@ static int read_and_act(struct active_array *a) * readonly ??? */ get_resync_start(a); + printf("Found a readonly array at %llu\n", a->resync_start); if (a->resync_start == ~0ULL) a->next_state = read_auto; /* array is clean */ else { - a->container->ss->mark_clean(a, 0); + a->container->ss->set_array_state(a, 0); a->next_state = active; } } @@ -269,6 +271,7 @@ static int read_and_act(struct active_array *a) * Just check if we need to fiddle spares. */ get_resync_start(a); + a->container->ss->set_array_state(a, 0); check_degraded = 1; } |