if (IS_ERR(o))
RETURN(rc = PTR_ERR(o));
+ rc = mdt_check_enc(info, o);
+ if (rc)
+ GOTO(out, rc);
+
if (unlikely(mdt_object_remote(o))) {
/* the child object was created on remote server */
struct mdt_body *repbody;
GOTO(out, rc = -ENOENT);
}
+ /* do not check enc for directory: always allow open */
+ if (!S_ISDIR(lu_object_attr(&o->mot_obj))) {
+ rc = mdt_check_enc(info, o);
+ if (rc)
+ GOTO(out, rc);
+ }
+
mdt_set_disposition(info, rep, (DISP_IT_EXECD | DISP_LOOKUP_EXECD));
mdt_prep_ma_buf_from_rep(info, o, ma);
if (IS_ERR(o))
RETURN(rc = PTR_ERR(o));
+ rc = mdt_check_enc(info, o);
+ if (rc)
+ GOTO(out, rc);
+
if (mdt_object_remote(o)) {
/* Something is wrong here, the object is on another MDS! */
CERROR("%s: "DFID" isn't on this server!: rc = %d\n",
GOTO(out, result);
}
+ result = mdt_check_enc(info, parent);
+ if (result)
+ GOTO(out_parent, result);
+
fid_zero(child_fid);
result = -ENOENT;
lock_mode = mdt_open_lock_mode(info, parent, &rr->rr_name, open_flags);