};
/* mds/mds_lov.c */
-int mds_lov_write_objids(struct obd_device *obd);
+int mds_lov_write_objids(const struct lu_env *env,
+ struct obd_device *obd,
+ struct thandle *th);
int mds_lov_prepare_objids(struct obd_device *obd, struct lov_mds_md *lmm);
void mds_lov_update_objids(struct obd_device *obd, struct lov_mds_md *lmm);
int mds_log_op_unlink(struct obd_device *, struct lov_mds_md *, int,
cfs_proc_dir_entry_t *mgs_proc_live;
};
+struct dt_object;
+struct dt_device;
+
struct mds_obd {
/* NB this field MUST be first */
struct obd_device_target mds_obt;
/* for capability keys update */
struct lustre_capa_key *mds_capa_keys;
struct rw_semaphore mds_notify_lock;
+
+ struct dt_object *mds_lov_objid_dt;
+ struct dt_device *mds_next_dev;
};
#define mds_transno_lock mds_obt.obt_translock
/* Find last changelog entry number */
ctxt = llog_get_context(obd, LLOG_CHANGELOG_ORIG_CTXT);
if (ctxt == NULL) {
- CERROR("no changelog context\n");
+ //CERROR("no changelog context\n");
return -EINVAL;
}
if (!ctxt->loc_handle) {
rc = mdd_changelog_llog_init(mdd);
if (rc) {
- CERROR("Changelog setup during init failed %d\n", rc);
+ //CERROR("Changelog setup during init failed %d\n", rc);
mdd->mdd_cl.mc_flags |= CLM_ERR;
}
RETURN(rc);
}
+int mds_lov_init(struct obd_device *obd);
+
static int mdd_prepare(const struct lu_env *env,
struct lu_device *pdev,
struct lu_device *cdev)
GOTO(out, rc);
}
+ rc = mds_lov_init(mdd2obd_dev(mdd));
out:
RETURN(rc);
}
struct mdd_object *mdd_dot_lustre;
struct mdd_dot_lustre_objs mdd_dot_lustre_objs;
unsigned int mdd_sync_permission;
+ struct dt_object *mdd_objid;
};
enum mod_flags {