monitor: treat unreadable array_state as clean
Failure to read array_state can only mean the array has been deleted by the kernel; it is not an indication that the array is dirty. Signed-off-by: Martin Wilck <mwilck@arcor.de> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
40ae6f5f8e
commit
6b374ba368
|
@ -265,7 +265,7 @@ static int read_and_act(struct active_array *a)
|
||||||
*/
|
*/
|
||||||
a->container->ss->set_array_state(a, 0);
|
a->container->ss->set_array_state(a, 0);
|
||||||
}
|
}
|
||||||
if (a->curr_state <= inactive &&
|
if ((a->curr_state == bad_word || a->curr_state <= inactive) &&
|
||||||
a->prev_state > inactive) {
|
a->prev_state > inactive) {
|
||||||
/* array has been stopped */
|
/* array has been stopped */
|
||||||
a->container->ss->set_array_state(a, 1);
|
a->container->ss->set_array_state(a, 1);
|
||||||
|
@ -288,8 +288,7 @@ static int read_and_act(struct active_array *a)
|
||||||
a->container->ss->set_array_state(a, 1);
|
a->container->ss->set_array_state(a, 1);
|
||||||
}
|
}
|
||||||
if (a->curr_state == active ||
|
if (a->curr_state == active ||
|
||||||
a->curr_state == suspended ||
|
a->curr_state == suspended)
|
||||||
a->curr_state == bad_word)
|
|
||||||
ret |= ARRAY_DIRTY;
|
ret |= ARRAY_DIRTY;
|
||||||
if (a->curr_state == readonly) {
|
if (a->curr_state == readonly) {
|
||||||
/* Well, I'm ready to handle things. If readonly
|
/* Well, I'm ready to handle things. If readonly
|
||||||
|
|
Loading…
Reference in New Issue