diff --git a/fs/dlm/recoverd.c b/fs/dlm/recoverd.c index d2ad1cab0f0559f400ebb8d8836c1a762e562320..6f4e1d42d733bf3935cba33bce9bb516408ad088 100644 --- a/fs/dlm/recoverd.c +++ b/fs/dlm/recoverd.c @@ -299,8 +299,11 @@ static int dlm_recoverd(void *arg) break; } if (!test_bit(LSFL_RECOVER_WORK, &ls->ls_flags) && - !test_bit(LSFL_RECOVER_DOWN, &ls->ls_flags)) + !test_bit(LSFL_RECOVER_DOWN, &ls->ls_flags)) { + if (kthread_should_stop()) + break; schedule(); + } set_current_state(TASK_RUNNING); if (test_and_clear_bit(LSFL_RECOVER_DOWN, &ls->ls_flags)) {