summaryrefslogtreecommitdiff
path: root/fs/ceph/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ceph/inode.c')
-rw-r--r--fs/ceph/inode.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index a3aa7870a6a2..50ff641865e0 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -83,12 +83,17 @@ struct inode *ceph_new_inode(struct inode *dir, struct dentry *dentry,
goto out_err;
}
+ inode->i_state = 0;
+ inode->i_mode = *mode;
+
err = ceph_security_init_secctx(dentry, *mode, as_ctx);
if (err < 0)
goto out_err;
- inode->i_state = 0;
- inode->i_mode = *mode;
+ err = ceph_fscrypt_prepare_context(dir, inode, as_ctx);
+ if (err)
+ goto out_err;
+
return inode;
out_err:
iput(inode);
@@ -102,6 +107,7 @@ void ceph_as_ctx_to_req(struct ceph_mds_request *req,
req->r_pagelist = as_ctx->pagelist;
as_ctx->pagelist = NULL;
}
+ ceph_fscrypt_as_ctx_to_req(req, as_ctx);
}
/**