[RFC PATCH v2 00/18] ceph+fscrypt: context, filename and symlink support

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

 



This is a second posting of the ceph+fscrypt integration work that I've
been experimenting with. The main change with this patch is that I've
based this on top of Eric's fscrypt-pending set. That necessitated a
change to allocate inodes much earlier than we have traditionally, prior
to sending an RPC instead of waiting on the reply.

Note that this just covers the crypto contexts and filenames. I've also
added a patch to encrypt symlink contents as well, but it doesn't seem to
be working correctly.

The file contents work is next, but I'm sort of waiting until some work
to the fscache infrastructure is settled. It would be nice if fscache
also stored encrypted file contents when we plumb this in.

Jeff Layton (18):
  vfs: export new_inode_pseudo
  fscrypt: drop unused inode argument from fscrypt_fname_alloc_buffer
  fscrypt: export fscrypt_d_revalidate
  fscrypt: add fscrypt_new_context_from_inode
  fscrypt: don't balk when inode is already marked encrypted
  fscrypt: move nokey_name conversion to separate function and export it
  lib: lift fscrypt base64 conversion into lib/
  ceph: add fscrypt ioctls
  ceph: crypto context handling for ceph
  ceph: preallocate inode for ops that may create one
  ceph: add routine to create context prior to RPC
  ceph: set S_ENCRYPTED bit if new inode has encryption.ctx xattr
  ceph: make ceph_msdc_build_path use ref-walk
  ceph: add encrypted fname handling to ceph_mdsc_build_path
  ceph: make d_revalidate call fscrypt revalidator for encrypted
    dentries
  ceph: add support to readdir for encrypted filenames
  ceph: add fscrypt support to ceph_fill_trace
  ceph: create symlinks with encrypted and base64-encoded targets

 fs/ceph/Makefile             |   1 +
 fs/ceph/crypto.c             | 179 +++++++++++++++++++++++++++++
 fs/ceph/crypto.h             |  83 ++++++++++++++
 fs/ceph/dir.c                | 162 ++++++++++++++++++++------
 fs/ceph/file.c               |  56 +++++----
 fs/ceph/inode.c              | 213 ++++++++++++++++++++++++++++++-----
 fs/ceph/ioctl.c              |  25 ++++
 fs/ceph/mds_client.c         |  75 ++++++++----
 fs/ceph/mds_client.h         |   1 +
 fs/ceph/super.c              |  37 ++++++
 fs/ceph/super.h              |  19 +++-
 fs/ceph/xattr.c              |  32 ++++++
 fs/crypto/Kconfig            |   1 +
 fs/crypto/fname.c            | 139 ++++++++---------------
 fs/crypto/hooks.c            |   2 +-
 fs/crypto/keysetup.c         |   2 +-
 fs/crypto/policy.c           |  20 ++++
 fs/ext4/dir.c                |   2 +-
 fs/ext4/namei.c              |   7 +-
 fs/f2fs/dir.c                |   2 +-
 fs/inode.c                   |   1 +
 fs/ubifs/dir.c               |   2 +-
 include/linux/base64_fname.h |  11 ++
 include/linux/fscrypt.h      |  10 +-
 lib/Kconfig                  |   3 +
 lib/Makefile                 |   1 +
 lib/base64_fname.c           |  71 ++++++++++++
 27 files changed, 943 insertions(+), 214 deletions(-)
 create mode 100644 fs/ceph/crypto.c
 create mode 100644 fs/ceph/crypto.h
 create mode 100644 include/linux/base64_fname.h
 create mode 100644 lib/base64_fname.c

-- 
2.26.2




[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