Whamcloud - gitweb
LU-395: obd_zombie_barrier is not barrier actually
authorJinshan Xiong <jay@whamcloud.com>
Thu, 16 Jun 2011 05:30:27 +0000 (22:30 -0700)
committerOleg Drokin <green@whamcloud.com>
Thu, 16 Jun 2011 19:53:37 +0000 (12:53 -0700)
a hotfix for avoiding deadlock:
sys_umount -> class_detach -> obd_zombie_impexp_cull -> filter_cleanup
-> obd_zombie_barrier, but the zombies_count will only be decreased after
obd_zombie_impexp_cull, so this process is waiting for itself, this is a
deadlock.

Signed-off-by: Jinshan Xiong <jay@whamcloud.com>
Change-Id: Id29deab4c85a7570ec59b2a20f70ccfae9440f01
Reviewed-on: http://review.whamcloud.com/945
Reviewed-by: Mikhail Pershin <tappro@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/obdclass/obd_config.c

index de433ff..7331460 100644 (file)
@@ -545,10 +545,6 @@ int class_detach(struct obd_device *obd, struct lustre_cfg *lcfg)
                obd->obd_name, obd->obd_uuid.uuid);
 
         class_decref(obd, "attach", obd);
-
-        /* not strictly necessary, but cleans up eagerly */
-        obd_zombie_impexp_cull();
-
         RETURN(0);
 }