struct mdd_device *mdd = mdo2mdd(cobj);
struct mdd_object *mdd_pobj = md2mdd_obj(pobj);
struct mdd_object *son = md2mdd_obj(cobj);
- struct lu_attr *attr = &ma->ma_attr;
struct lov_mds_md *lmm = NULL;
int lmm_size = 0;
struct thandle *handle;
if (!md_should_create(spec->sp_cr_flags))
RETURN(0);
lmm_size = ma->ma_lmm_size;
- rc = mdd_lov_create(env, mdd, mdd_pobj, son, &lmm, &lmm_size,
- spec, attr);
+
+ rc = mdd_lov_create(env, mdd, mdd_pobj, son, &lmm, &lmm_size, spec, ma);
if (rc)
RETURN(rc);
mdd_trans_stop(env, mdd, rc, handle);
out_free:
/* Finish mdd_lov_create() stuff. */
+ /* if no_create == 0 (not replay), we free lmm allocated by
+ * mdd_lov_create() */
mdd_lov_create_finish(env, mdd, lmm, lmm_size, spec);
RETURN(rc);
}
if (S_ISREG(attr->la_mode)) {
lmm_size = ma->ma_lmm_size;
rc = mdd_lov_create(env, mdd, mdd_pobj, son, &lmm, &lmm_size,
- spec, attr);
+ spec, ma);
if (rc)
GOTO(out_pending, rc);
}
.mdo_rename = mdd_rename,
.mdo_link = mdd_link,
.mdo_unlink = mdd_unlink,
+ .mdo_lum_lmm_cmp = mdd_lum_lmm_cmp,
.mdo_name_insert = mdd_name_insert,
.mdo_name_remove = mdd_name_remove,
.mdo_rename_tgt = mdd_rename_tgt,