mdd->mdd_cl.mc_index = 0;
cfs_spin_lock_init(&mdd->mdd_cl.mc_lock);
- cfs_waitq_init(&mdd->mdd_cl.mc_waitq);
mdd->mdd_cl.mc_starttime = cfs_time_current_64();
mdd->mdd_cl.mc_flags = 0; /* off by default */
mdd->mdd_cl.mc_mask = CHANGELOG_DEFMASK;
struct llog_ctxt *ctxt;
int rc;
- if ((mdd->mdd_cl.mc_mask & (1 << rec->cr.cr_type)) == 0)
- return 0;
-
rec->cr_hdr.lrh_len = llog_data_len(sizeof(*rec) + rec->cr.cr_namelen);
/* llog_lvfs_write_rec sets the llog tail len */
rec->cr_hdr.lrh_type = CHANGELOG_REC;
rc = llog_add(ctxt, &rec->cr_hdr, NULL, NULL, 0);
llog_ctxt_put(ctxt);
- cfs_waitq_signal(&mdd->mdd_cl.mc_waitq);
-
return rc;
}
/* Status and action flags */
rec->cr.cr_markerflags = mdd->mdd_cl.mc_flags | markerflags;
- rc = mdd_changelog_llog_write(mdd, rec, NULL);
+ rc = (mdd->mdd_cl.mc_mask & (1 << CL_MARK)) ?
+ mdd_changelog_llog_write(mdd, rec, NULL) : 0;
/* assume on or off event; reset repeat-access time */
mdd->mdd_cl.mc_starttime = cfs_time_current_64();
return -ENOSYS;
}
+static int dot_file_lock(const struct lu_env *env, struct md_object *obj,
+ struct lov_mds_md *lmm, struct ldlm_extent *extent,
+ struct lustre_handle *lockh)
+{
+ return -ENOSYS;
+}
+
+static int dot_file_unlock(const struct lu_env *env, struct md_object *obj,
+ struct lov_mds_md *lmm, struct lustre_handle *lockh)
+{
+ return -ENOSYS;
+}
static struct md_object_operations mdd_dot_lustre_obj_ops = {
.moo_permission = dot_lustre_mdd_permission,
.moo_version_get = dot_lustre_mdd_version_get,
.moo_version_set = dot_lustre_mdd_version_set,
.moo_path = dot_lustre_mdd_path,
+ .moo_file_lock = dot_file_lock,
+ .moo_file_unlock = dot_file_unlock,
};
return 0;
if (ma->ma_need & MA_LOV_DEF) {
- rc = mdd_get_default_md(mdd_obj, ma->ma_lmm,
- &ma->ma_lmm_size);
+ rc = mdd_get_default_md(mdd_obj, ma->ma_lmm);
if (rc > 0) {
+ ma->ma_lmm_size = rc;
ma->ma_valid |= MA_LOV;
rc = 0;
}
OBD_NOTIFY_SYNC_NONBLOCK : OBD_NOTIFY_SYNC), NULL);
/* Drop obd_recovering to 0 and call o_postrecov to recover mds_lov */
+ cfs_spin_lock(&obd->obd_dev_lock);
obd->obd_recovering = 0;
+ cfs_spin_unlock(&obd->obd_dev_lock);
obd->obd_type->typ_dt_ops->o_postrecov(obd);
/* XXX: orphans handling. */