Whamcloud - gitweb
LU-426 Server failover never finishes
authorBobi Jam <bobijam@whamcloud.com>
Tue, 21 Jun 2011 04:34:55 +0000 (12:34 +0800)
committerOleg Drokin <green@whamcloud.com>
Fri, 15 Jul 2011 00:02:16 +0000 (17:02 -0700)
Make sure obd_zomebie_impexp_thread get zombie add notification.
It is possible this signal is only get by obd_zombie_barrier, and
barrier gulps this notification and sleeps away and hangs ensues.

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: Ic4a7b9de19aa5e6a9aaa8fb54e7083629b88119b
Reviewed-on: http://review.whamcloud.com/986
Tested-by: Hudson
Reviewed-by: Jinshan Xiong <jay@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Mikhail Pershin <tappro@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/obdclass/genops.c

index e0a9416..b004084 100644 (file)
@@ -1578,7 +1578,12 @@ static void obd_zombie_import_add(struct obd_import *imp) {
  */
 static void obd_zombie_impexp_notify(void)
 {
-        cfs_waitq_signal(&obd_zombie_waitq);
+        /*
+         * Make sure obd_zomebie_impexp_thread get this notification.
+         * It is possible this signal only get by obd_zombie_barrier, and
+         * barrier gulps this notification and sleeps away and hangs ensues
+         */
+        cfs_waitq_broadcast(&obd_zombie_waitq);
 }
 
 /**