lu_fid_eq(&mdt->mdt_md_root_fid, &fp->gf_fid))
GOTO(out, rc = -ENOENT);
- mdt_obj = mdt_object_find(info->mti_env, mdt, tmpfid);
- if (IS_ERR(mdt_obj))
- GOTO(out, rc = PTR_ERR(mdt_obj));
+ if (lu_fid_eq(mdt_object_fid(obj), tmpfid)) {
+ mdt_obj = obj;
+ mdt_object_get(info->mti_env, mdt_obj);
+ } else {
+ mdt_obj = mdt_object_find(info->mti_env, mdt, tmpfid);
+ if (IS_ERR(mdt_obj))
+ GOTO(out, rc = PTR_ERR(mdt_obj));
+ }
if (!mdt_object_exists(mdt_obj)) {
mdt_object_put(info->mti_env, mdt_obj);