mdc_uuid->uuid, LMV_MAX_TGT_COUNT);
RETURN(-EINVAL);
}
-#if 0
if (lmv->desc.ld_tgt_count == 0) {
struct obd_device *mdc_obd;
CERROR("lmv failed to setup llogging subsystems\n");
}
}
-#endif
spin_lock(&lmv->lmv_lock);
tgt = lmv->tgts + lmv->desc.ld_tgt_count++;
tgt->uuid = *mdc_uuid;
RETURN(0);
}
-
static int lmv_process_config(struct obd_device *obd, obd_count len, void *buf)
{
struct lustre_cfg *lcfg = buf;
RETURN(rc);
}
+static int lmv_precleanup(struct obd_device *obd, int flags)
+{
+ int rc = 0;
+
+ rc = obd_llog_finish(obd, &obd->obd_llogs, 0);
+ if (rc != 0)
+ CERROR("failed to cleanup llogging subsystems\n");
+
+ RETURN(rc);
+}
+
static int lmv_get_info(struct obd_export *exp, __u32 keylen,
void *key, __u32 *vallen, void *val)
{
.o_detach = lmv_detach,
.o_setup = lmv_setup,
.o_cleanup = lmv_cleanup,
+ .o_precleanup = lmv_precleanup,
.o_process_config = lmv_process_config,
.o_connect = lmv_connect,
.o_disconnect = lmv_disconnect,