rc = mdd_create_sanity_check(ctxt, mdd, pobj, name, ma);
if (rc)
RETURN(rc);
-
+ /* no RPC inside the transaction, so OST objects should be created at
+ * first */
+ if (S_ISREG(attr->la_mode)) {
+ rc = mdd_lov_create(ctxt, mdd, mdo, son, &lmm, &lmm_size,
+ eadata, eadatasize, attr);
+ if (rc)
+ RETURN(rc);
+ }
+
mdd_txn_param_build(ctxt, &MDD_TXN_MKDIR);
handle = mdd_trans_start(ctxt, mdd);
if (IS_ERR(handle))
GOTO(cleanup, rc);
inserted = 1;
-
+ rc = mdd_lov_set_md(ctxt, pobj, child, lmm, lmm_size, attr->la_mode,
+ handle);
+ if (rc) {
+ CERROR("error on stripe info copy %d \n", rc);
+ GOTO(cleanup, rc);
+ }
+
if (S_ISLNK(attr->la_mode)) {
struct dt_object *dt = mdd_object_child(son);
loff_t pos = 0;
};
-#define MDT_NONEED_TANSNO 0x0000001 /*Do not need transno for this req*/
-
+enum {
+ MDT_NONEED_TANSNO = (1 << 0) /*Do not need transno for this req*/
+};
/*
* Common data shared by mdt-level handlers. This is allocated per-thread to
* reduce stack consumption.
RETURN(result);
ma->ma_lmm = req_capsule_server_get(&info->mti_pill, &RMF_MDT_MD);
- ma->ma_lmm_size = req_capsule_get_size(&info->mti_pill,
- &RMF_MDT_MD, RCL_SERVER);
+ ma->ma_lmm_size = mdt->mdt_max_mdsize;
if (rr->rr_name[0] == 0) {
/* reint partial remote open */