Re: [PATCH 04/36] fscrypt: add fscrypt_context_for_new_inode

Eric Biggers
2021-12-10T19:40:10Z

On Thu, Dec 09, 2021 at 10:36:15AM -0500, 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@kernel.org>
> ---
> fs/crypto/policy.c | 34 ++++++++++++++++++++++++++++------
> include/linux/fscrypt.h | 1 +
> 2 files changed, 29 insertions(+), 6 deletions(-)

Acked-by: Eric Biggers <ebiggers@google.com>

> + BUILD_BUG_ON(sizeof(union fscrypt_context) != FSCRYPT_SET_CONTEXT_MAX_SIZE);

Please line wrap at 80 characters when possible.

- Eric