From 34867abf42f22d6c435e9e15e9497f8095059b04 Mon Sep 17 00:00:00 2001 From: Niu Yawei Date: Fri, 4 Jan 2013 04:35:07 -0500 Subject: [PATCH] LU-2543 llite: wait osc cleanup when put super Since osc is now accessing sbi->ll_cache, we'd wait till all OSCs are gone when put super. Signed-off-by: Niu Yawei Change-Id: I5d09b29cda28d4b596f67bdf8da2ce5e7082a38e Reviewed-on: http://review.whamcloud.com/4951 Reviewed-by: Bobi Jam Tested-by: Hudson Tested-by: Maloo Reviewed-by: Jinshan Xiong Reviewed-by: Oleg Drokin --- lustre/llite/llite_lib.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index c1c9ef3..38bd420 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -595,6 +595,8 @@ out_lock_cn_cb: out_dt: obd_disconnect(sbi->ll_dt_exp); sbi->ll_dt_exp = NULL; + /* Make sure all OScs are gone, since cl_cache is accessing sbi. */ + obd_zombie_barrier(); out_md_fid: obd_fid_fini(sbi->ll_md_exp); out_md: @@ -687,6 +689,9 @@ void client_common_put_super(struct super_block *sb) obd_fid_fini(sbi->ll_dt_exp); obd_disconnect(sbi->ll_dt_exp); sbi->ll_dt_exp = NULL; + /* wait till all OSCs are gone, since cl_cache is accessing sbi. + * see LU-2543. */ + obd_zombie_barrier(); lprocfs_unregister_mountpoint(sbi); -- 1.8.3.1