The main change in this posting is in the detection of fscrypted inodes. The older set would grovel around in the xattr blob to see if it had an "encryption.ctx" xattr. This was problematic if the MDS didn't send xattrs in the trace, and not very efficient. This posting changes it to use the new "fscrypt" flag, which should always be reported by the MDS (Luis, I'm hoping this may fix the issues you were seeing with dcache coherency). This unfortunately requires an MDS fix, but that should hopefully make it in and be backported to Pacific fairly soon: https://github.com/ceph/ceph/pull/40828 We also now handle get_name in the NFS export code correctly. Aside from that, there are better changelogs, particularly on the fscrypt and vfs patches, and some smaller bugfixes and optimizations. Jeff Layton (20): vfs: export new_inode_pseudo fscrypt: export fscrypt_base64_encode and fscrypt_base64_decode fscrypt: export fscrypt_fname_encrypt and fscrypt_fname_encrypted_size fscrypt: add fscrypt_context_for_new_inode ceph: crypto context handling for ceph ceph: implement -o test_dummy_encryption mount option ceph: preallocate inode for ops that may create one ceph: add routine to create fscrypt context prior to RPC ceph: make ceph_msdc_build_path use ref-walk ceph: add encrypted fname handling to ceph_mdsc_build_path ceph: decode alternate_name in lease info ceph: send altname in MClientRequest 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 fscrypt ioctls fs/ceph/Makefile | 1 + fs/ceph/crypto.c | 185 ++++++++++++++++++++++ fs/ceph/crypto.h | 101 ++++++++++++ fs/ceph/dir.c | 178 ++++++++++++++++----- fs/ceph/export.c | 42 +++-- fs/ceph/file.c | 58 ++++--- fs/ceph/inode.c | 248 ++++++++++++++++++++++++++--- fs/ceph/ioctl.c | 93 +++++++++++ fs/ceph/mds_client.c | 303 ++++++++++++++++++++++++++++++------ fs/ceph/mds_client.h | 15 +- fs/ceph/super.c | 80 +++++++++- fs/ceph/super.h | 15 +- fs/ceph/xattr.c | 5 + fs/crypto/fname.c | 53 +++++-- fs/crypto/fscrypt_private.h | 9 +- fs/crypto/hooks.c | 6 +- fs/crypto/policy.c | 34 +++- fs/inode.c | 1 + include/linux/fscrypt.h | 10 ++ 19 files changed, 1263 insertions(+), 174 deletions(-) create mode 100644 fs/ceph/crypto.c create mode 100644 fs/ceph/crypto.h -- 2.30.2