X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fmdd%2Fmdd_dir.c;h=c90f83ba010142d21f881277868cfa567c802904;hp=b20bb9c49ef0ddfc9c1d85bd6372d42827cedab3;hb=5b26bbe0f452713ddd54c75781153adc54a4dafb;hpb=d2d56f38da01001c92a09afc6b52b5acbd9bc13c diff --git a/lustre/mdd/mdd_dir.c b/lustre/mdd/mdd_dir.c index b20bb9c..c90f83b 100644 --- a/lustre/mdd/mdd_dir.c +++ b/lustre/mdd/mdd_dir.c @@ -979,8 +979,7 @@ static int mdd_create_data(const struct lu_env *env, struct md_object *pobj, if (rc) RETURN(rc); - if (spec->sp_cr_flags & MDS_OPEN_DELAY_CREATE || - !(spec->sp_cr_flags & FMODE_WRITE)) + if (!md_should_create(spec->sp_cr_flags)) RETURN(0); rc = mdd_lov_create(env, mdd, mdd_pobj, son, &lmm, &lmm_size, @@ -1016,7 +1015,7 @@ static int mdd_create_data(const struct lu_env *env, struct md_object *pobj, /* update lov_objid data, must be before transaction stop! */ if (rc == 0) - mdd_lov_objid_update(env, mdd); + mdd_lov_objid_update(mdd, lmm); mdd_trans_stop(env, mdd, rc, handle); out_free: @@ -1064,7 +1063,7 @@ __mdd_lookup(const struct lu_env *env, struct md_object *pobj, (struct dt_rec *)pack, key, mdd_object_capa(env, mdd_obj)); if (rc == 0) - fid_unpack(pack, fid); + rc = fid_unpack(pack, fid); } else rc = -ENOTDIR; @@ -1390,7 +1389,7 @@ cleanup: /* update lov_objid data, must be before transaction stop! */ if (rc == 0) - mdd_lov_objid_update(env, mdd); + mdd_lov_objid_update(mdd, lmm); mdd_pdo_write_unlock(env, mdd_pobj, dlh); out_trans: