From bd7167e490a2eac6076a558ec23c01cb2557e045 Mon Sep 17 00:00:00 2001 From: Bobi Jam Date: Tue, 21 Jun 2011 12:34:55 +0800 Subject: [PATCH] LU-426 Server failover never finishes 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 Change-Id: Ic4a7b9de19aa5e6a9aaa8fb54e7083629b88119b Reviewed-on: http://review.whamcloud.com/986 Tested-by: Hudson Reviewed-by: Jinshan Xiong Tested-by: Maloo Reviewed-by: Mikhail Pershin Reviewed-by: Oleg Drokin --- lustre/obdclass/genops.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lustre/obdclass/genops.c b/lustre/obdclass/genops.c index e0a9416..b004084 100644 --- a/lustre/obdclass/genops.c +++ b/lustre/obdclass/genops.c @@ -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); } /** -- 1.8.3.1