commit 5a9dac348d1ed1fe844ae91b91767b4ae34fc26b Author: Lon Hohberger <lhh@redhat.com> Date: Mon Nov 2 17:30:38 2009 -0500 qdiskd: Make qdiskd stop crying wolf The I/O hang check timer in qdiskd was somehow being woken up twice on rare occasion, causing qdiskd to falsely report an I/O hang when there were no actual problems with the system. Resolves: rhbz#532773 Signed-off-by: Lon Hohberger <lhh@redhat.com> diff --git a/cman/qdisk/iostate.c b/cman/qdisk/iostate.c index f4f2329..65b4d50 100644 --- a/cman/qdisk/iostate.c +++ b/cman/qdisk/iostate.c @@ -49,11 +49,12 @@ io_state(iostate_t state) pthread_mutex_lock(&state_mutex); main_state = state; main_incarnation++; /* it does not matter if this wraps. */ - pthread_mutex_unlock(&state_mutex); /* Optimization: Don't signal on STATE_NONE */ if (state != STATE_NONE) pthread_cond_broadcast(&state_cond); + + pthread_mutex_unlock(&state_mutex); }