static int __mdd_orphan_cleanup(void *args) { struct mdd_generic_thread *thread = (struct mdd_generic_thread *)args; struct lu_env *env = NULL; int rc; ENTRY; complete(&thread->mgt_started); OBD_ALLOC_PTR(env); if (env == NULL) GOTO(out, rc = -ENOMEM); rc = lu_env_init(env, LCT_MD_THREAD); if (rc) GOTO(out, rc); rc = orph_index_iterate(env, thread); lu_env_fini(env); GOTO(out, rc); out: if (env) OBD_FREE_PTR(env); complete(&thread->mgt_finished); return rc; }
/** * Iterate orphan index to cleanup orphan objects after recovery is done. * \param d mdd device in recovery. */ int __mdd_orphan_cleanup(const struct lu_env *env, struct mdd_device *d) { return orph_index_iterate(env, d); }