v8: bugfixes, comment cleanups, etc. It's been a little while since my last posting of this series. Not a lot has changed in this series since then. This is mostly addressing review comments on the v7 posting. Many thanks to Eric, Xiubo and Luis for helping review the last set. There are a few smaller bugfixes, some comment fixes, and a new helper to determine the length of a ceph_fscrypt_auth field was added. This support requires changes to the MDS that are currently being tracked here: https://github.com/ceph/ceph/pull/41284 This patchset also requires a patch that's not yet in tree from Eric Biggers: [PATCH] fscrypt: align Base64 encoding with RFC 4648 base64url Hopefully, that will go into v5.15. Work continues on the content piece, but I don't think we want to merge any of this until we have a fully-working prototype. I'm planning to send a ceph+fscrypt state of the union email in a bit that covers the state of the larger project. Stay tuned... Jeff Layton (24): vfs: export new_inode_pseudo fscrypt: export fscrypt_base64url_encode and fscrypt_base64url_decode fscrypt: export fscrypt_fname_encrypt and fscrypt_fname_encrypted_size fscrypt: add fscrypt_context_for_new_inode ceph: preallocate inode for ops that may create one ceph: parse new fscrypt_auth and fscrypt_file fields in inode traces ceph: add fscrypt_* handling to caps.c ceph: crypto context handling for ceph ceph: add ability to set fscrypt_auth via setattr ceph: implement -o test_dummy_encryption mount option ceph: add fscrypt ioctls ceph: decode alternate_name in lease info ceph: make ceph_msdc_build_path use ref-walk ceph: add encrypted fname handling to ceph_mdsc_build_path ceph: send altname in MClientRequest ceph: encode encrypted name in dentry release ceph: properly set DCACHE_NOKEY_NAME flag in lookup ceph: make d_revalidate call fscrypt revalidator for encrypted dentries ceph: add helpers for converting names for userland presentation ceph: add fscrypt support to ceph_fill_trace ceph: add support to readdir for encrypted filenames ceph: create symlinks with encrypted and base64-encoded targets ceph: make ceph_get_name decrypt filenames ceph: add a new ceph.fscrypt.auth vxattr fs/ceph/Makefile | 1 + fs/ceph/acl.c | 4 +- fs/ceph/caps.c | 93 ++++++++-- fs/ceph/crypto.c | 254 ++++++++++++++++++++++++++ fs/ceph/crypto.h | 129 +++++++++++++ fs/ceph/dir.c | 198 +++++++++++++++----- fs/ceph/export.c | 44 +++-- fs/ceph/file.c | 64 ++++--- fs/ceph/inode.c | 304 ++++++++++++++++++++++++++++--- fs/ceph/ioctl.c | 83 +++++++++ fs/ceph/mds_client.c | 342 +++++++++++++++++++++++++++++------ fs/ceph/mds_client.h | 22 ++- fs/ceph/super.c | 82 ++++++++- fs/ceph/super.h | 31 +++- fs/ceph/xattr.c | 25 +++ fs/crypto/fname.c | 40 +++- fs/crypto/fscrypt_private.h | 9 +- fs/crypto/hooks.c | 6 +- fs/crypto/policy.c | 34 +++- fs/inode.c | 1 + include/linux/ceph/ceph_fs.h | 21 ++- include/linux/fscrypt.h | 10 + 22 files changed, 1572 insertions(+), 225 deletions(-) create mode 100644 fs/ceph/crypto.c create mode 100644 fs/ceph/crypto.h -- 2.31.1