Lines Matching refs:inode

100 static bool supported_direct_key_modes(const struct inode *inode,  in supported_direct_key_modes()  argument
106 fscrypt_warn(inode, in supported_direct_key_modes()
113 fscrypt_warn(inode, "Direct key flag not allowed with %s", in supported_direct_key_modes()
121 const struct inode *inode, in supported_iv_ino_lblk_policy() argument
125 struct super_block *sb = inode->i_sb; in supported_iv_ino_lblk_policy()
136 fscrypt_warn(inode, in supported_iv_ino_lblk_policy()
148 fscrypt_warn(inode, in supported_iv_ino_lblk_policy()
156 fscrypt_warn(inode, in supported_iv_ino_lblk_policy()
162 fscrypt_warn(inode, in supported_iv_ino_lblk_policy()
171 const struct inode *inode) in fscrypt_supported_v1_policy() argument
175 fscrypt_warn(inode, in fscrypt_supported_v1_policy()
184 fscrypt_warn(inode, "Unsupported encryption flags (0x%02x)", in fscrypt_supported_v1_policy()
190 !supported_direct_key_modes(inode, policy->contents_encryption_mode, in fscrypt_supported_v1_policy()
194 if (IS_CASEFOLDED(inode)) { in fscrypt_supported_v1_policy()
196 fscrypt_warn(inode, in fscrypt_supported_v1_policy()
205 const struct inode *inode) in fscrypt_supported_v2_policy() argument
211 fscrypt_warn(inode, in fscrypt_supported_v2_policy()
222 fscrypt_warn(inode, "Unsupported encryption flags (0x%02x)", in fscrypt_supported_v2_policy()
231 fscrypt_warn(inode, "Mutually exclusive encryption flags (0x%02x)", in fscrypt_supported_v2_policy()
237 !supported_direct_key_modes(inode, policy->contents_encryption_mode, in fscrypt_supported_v2_policy()
242 !supported_iv_ino_lblk_policy(policy, inode, "IV_INO_LBLK_64", in fscrypt_supported_v2_policy()
253 !supported_iv_ino_lblk_policy(policy, inode, "IV_INO_LBLK_32", in fscrypt_supported_v2_policy()
258 fscrypt_warn(inode, "Reserved bits set in encryption policy"); in fscrypt_supported_v2_policy()
278 const struct inode *inode) in fscrypt_supported_policy() argument
282 return fscrypt_supported_v1_policy(&policy_u->v1, inode); in fscrypt_supported_policy()
284 return fscrypt_supported_v2_policy(&policy_u->v2, inode); in fscrypt_supported_policy()
406 static int fscrypt_get_policy(struct inode *inode, union fscrypt_policy *policy) in fscrypt_get_policy() argument
412 ci = fscrypt_get_info(inode); in fscrypt_get_policy()
419 if (!IS_ENCRYPTED(inode)) in fscrypt_get_policy()
422 ret = inode->i_sb->s_cop->get_context(inode, &ctx, sizeof(ctx)); in fscrypt_get_policy()
429 static int set_encryption_policy(struct inode *inode, in set_encryption_policy() argument
437 if (!fscrypt_supported_policy(policy, inode)) in set_encryption_policy()
457 err = fscrypt_verify_key_added(inode->i_sb, in set_encryption_policy()
473 return inode->i_sb->s_cop->set_context(inode, &ctx, ctxsize, NULL); in set_encryption_policy()
480 struct inode *inode = file_inode(filp); in fscrypt_ioctl_set_policy() local
508 if (!inode_owner_or_capable(&nop_mnt_idmap, inode)) in fscrypt_ioctl_set_policy()
515 inode_lock(inode); in fscrypt_ioctl_set_policy()
517 ret = fscrypt_get_policy(inode, &existing_policy); in fscrypt_ioctl_set_policy()
519 if (!S_ISDIR(inode->i_mode)) in fscrypt_ioctl_set_policy()
521 else if (IS_DEADDIR(inode)) in fscrypt_ioctl_set_policy()
523 else if (!inode->i_sb->s_cop->empty_dir(inode)) in fscrypt_ioctl_set_policy()
526 ret = set_encryption_policy(inode, &policy); in fscrypt_ioctl_set_policy()
534 inode_unlock(inode); in fscrypt_ioctl_set_policy()
595 struct inode *inode = file_inode(filp); in fscrypt_ioctl_get_nonce() local
599 ret = inode->i_sb->s_cop->get_context(inode, &ctx, sizeof(ctx)); in fscrypt_ioctl_get_nonce()
630 int fscrypt_has_permitted_context(struct inode *parent, struct inode *child) in fscrypt_has_permitted_context()
693 const union fscrypt_policy *fscrypt_policy_to_inherit(struct inode *dir) in fscrypt_policy_to_inherit()
718 int fscrypt_context_for_new_inode(void *ctx, struct inode *inode) in fscrypt_context_for_new_inode() argument
720 struct fscrypt_info *ci = inode->i_crypt_info; in fscrypt_context_for_new_inode()
743 int fscrypt_set_context(struct inode *inode, void *fs_data) in fscrypt_set_context() argument
745 struct fscrypt_info *ci = inode->i_crypt_info; in fscrypt_set_context()
749 ctxsize = fscrypt_context_for_new_inode(&ctx, inode); in fscrypt_set_context()
761 return inode->i_sb->s_cop->set_context(inode, &ctx, ctxsize, fs_data); in fscrypt_set_context()