Re: [RFC PATCH v7 04/24] fscrypt: add fscrypt_context_for_new_inode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 25, 2021 at 09:58:14AM -0400, Jeff Layton wrote:
> Most filesystems just call fscrypt_set_context on new inodes, which
> usually causes a setxattr. That's a bit late for ceph, which can send
> along a full set of attributes with the create request.
> 
> Doing so allows it to avoid race windows that where the new inode could
> be seen by other clients without the crypto context attached. It also
> avoids the separate round trip to the server.
> 
> Refactor the fscrypt code a bit to allow us to create a new crypto
> context, attach it to the inode, and write it to the buffer, but without
> calling set_context on it. ceph can later use this to marshal the
> context into the attributes we send along with the create request.
> 
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> ---
>  fs/crypto/policy.c      | 34 ++++++++++++++++++++++++++++------
>  include/linux/fscrypt.h |  1 +
>  2 files changed, 29 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/crypto/policy.c b/fs/crypto/policy.c
> index ed3d623724cd..6a895a31560f 100644
> --- a/fs/crypto/policy.c
> +++ b/fs/crypto/policy.c
> @@ -664,6 +664,31 @@ const union fscrypt_policy *fscrypt_policy_to_inherit(struct inode *dir)
>  	return fscrypt_get_dummy_policy(dir->i_sb);
>  }
>  
> +/**
> + * fscrypt_context_for_new_inode() - create an encryption context for a new inode
> + * @ctx: where context should be written
> + * @inode: inode from which to fetch policy and nonce
> + *
> + * Given an in-core "prepared" (via fscrypt_prepare_new_inode) inode,
> + * generate a new context and write it to ctx. ctx _must_ be at least
> + * FSCRYPT_SET_CONTEXT_MAX_SIZE bytes.
> + *
> + * Returns size of the resulting context or a negative error code.
> + */
> +int fscrypt_context_for_new_inode(void *ctx, struct inode *inode)

This generates a kerneldoc warning because "Returns" should be "Return:".

- Eric



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux