if (IS_ERR(child))
GOTO(out, rc = PTR_ERR(child));
+ /* child may not exist, but lu_object_attr will assert this,
+ * get type from loh_attr directly */
+ is_dir = S_ISDIR(child->mod_obj.mo_lu.lo_header->loh_attr);
+
mdd_write_lock(env, child, MOR_SRC_CHILD);
- is_dir = S_ISDIR(mdd_object_type(child));
snprintf(name, ent->lde_namelen + 1, "%s", ent->lde_name);
handle->th_local = 1;
if (likely(!target_exist)) {
rc = mdo_declare_index_insert(env, mdd_tobj,
- &ent->lde_fid,
- mdd_object_type(child),
- name, handle);
+ &ent->lde_fid,
+ child->mod_obj.mo_lu.lo_header->loh_attr,
+ name, handle);
if (rc != 0)
GOTO(out_put, rc);
if (likely(!target_exist)) {
rc = __mdd_index_insert(env, mdd_tobj, &ent->lde_fid,
- mdd_object_type(child),
- name, handle);
+ child->mod_obj.mo_lu.lo_header->loh_attr, name,
+ handle);
if (rc != 0)
GOTO(out_put, rc);
}