Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > d236c5da97a239a1b6991cfba2865b66 > files > 118

cman-2.0.115-68.el5_6.1.src.rpm

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);
 }