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,
(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;