Let's stop the recovery thread before destroying
update recovery list, which might cause race
especially when doing umount during recovery.
Signed-off-by: Di Wang <di.wang@intel.com>
Change-Id: I96fd2dd09caadb458723001f535d53f1d468394b
Reviewed-on: http://review.whamcloud.com/18651
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
struct lu_target *lut;
lut = lod2lu_dev(lod)->ld_site->ls_tgt;
+ target_recovery_fini(lut->lut_obd);
if (lut->lut_tdtd == NULL)
return;
void lod_sub_fini_llog(const struct lu_env *env,
struct dt_device *dt, struct ptlrpc_thread *thread);
int lodname2mdt_index(char *lodname, __u32 *mdt_index);
+extern void target_recovery_fini(struct obd_device *obd);
/* lod_lov.c */
void lod_getref(struct lod_tgt_descs *ltd);
next->md_ops->mdo_iocontrol(env, next, OBD_IOC_STOP_LFSCK, 0, &stop);
mdt_stack_pre_fini(env, m, md2lu_dev(m->mdt_child));
- target_recovery_fini(obd);
ping_evictor_stop();
if (m->mdt_opts.mo_coordinator)