Since osc is now accessing sbi->ll_cache, we'd wait till all OSCs
are gone when put super.
Signed-off-by: Niu Yawei <niu@whamcloud.com>
Change-Id: I5d09b29cda28d4b596f67bdf8da2ce5e7082a38e
Reviewed-on: http://review.whamcloud.com/4951
Reviewed-by: Bobi Jam <bobijam@gmail.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
out_dt:
obd_disconnect(sbi->ll_dt_exp);
sbi->ll_dt_exp = NULL;
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:
out_md_fid:
obd_fid_fini(sbi->ll_md_exp);
out_md:
obd_fid_fini(sbi->ll_dt_exp);
obd_disconnect(sbi->ll_dt_exp);
sbi->ll_dt_exp = NULL;
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);
lprocfs_unregister_mountpoint(sbi);