md_device_init(&m->mdt_md_dev, ldt);
m->mdt_md_dev.md_lu_dev.ld_ops = &mdt_lu_ops;
m->mdt_md_dev.md_lu_dev.ld_obd = obd;
+ /* set this lu_device to obd, because error handling need it */
+ obd->obd_lu_dev = &m->mdt_md_dev.md_lu_dev;
rc = lu_site_init(s, &m->mdt_md_dev.md_lu_dev);
if (rc) {
ENTRY;
med = &export->exp_mdt_data;
- LASSERT(med);
+ LASSERT(mdt);
+
target_destroy_export(export);
if (obd_uuid_equals(&export->exp_client_uuid, &obd->obd_uuid))
mcd_last_xid(mcd));
exp = class_new_export(obd, (struct obd_uuid *)mcd->mcd_uuid);
- if (IS_ERR(exp))
+ if (IS_ERR(exp)) {
+ rc = 0;
+ continue;
+ /* FIXME: Do we really want to return error?
GOTO(err_client, rc = PTR_ERR(exp));
+ */
+ }
med = &exp->exp_mdt_data;
med->med_mcd = mcd;