+static int cml_path(const struct lu_env *env, struct md_object *mo,
+ char *path, int pathlen, __u64 *recno, int *linkno)
+{
+ int rc;
+ ENTRY;
+ rc = mo_path(env, md_object_next(mo), path, pathlen, recno, linkno);
+ RETURN(rc);
+}
+
+static int cml_file_lock(const struct lu_env *env, struct md_object *mo,
+ struct lov_mds_md *lmm, struct ldlm_extent *extent,
+ struct lustre_handle *lockh)
+{
+ int rc;
+ ENTRY;
+ rc = mo_file_lock(env, md_object_next(mo), lmm, extent, lockh);
+ RETURN(rc);
+}
+
+static int cml_file_unlock(const struct lu_env *env, struct md_object *mo,
+ struct lov_mds_md *lmm, struct lustre_handle *lockh)
+{
+ int rc;
+ ENTRY;
+ rc = mo_file_unlock(env, md_object_next(mo), lmm, lockh);
+ RETURN(rc);
+}
+
+static int cml_object_sync(const struct lu_env *env, struct md_object *mo)
+{
+ int rc;
+ ENTRY;
+ rc = mo_object_sync(env, md_object_next(mo));
+ RETURN(rc);
+}
+
+static dt_obj_version_t cml_version_get(const struct lu_env *env,
+ struct md_object *mo)
+{
+ return mo_version_get(env, md_object_next(mo));
+}
+
+static void cml_version_set(const struct lu_env *env, struct md_object *mo,
+ dt_obj_version_t version)
+{
+ return mo_version_set(env, md_object_next(mo), version);
+}
+
+static const struct md_object_operations cml_mo_ops = {