linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/34] btrfs: add fscrypt support
@ 2023-10-16 18:21 Josef Bacik
  2023-10-16 18:21 ` [PATCH v3 01/34] fscrypt: add per-extent encryption support Josef Bacik
                   ` (33 more replies)
  0 siblings, 34 replies; 35+ messages in thread
From: Josef Bacik @ 2023-10-16 18:21 UTC (permalink / raw)
  To: linux-btrfs, kernel-team

Hello,

v1 and v2 of these patches can be found here

https://lore.kernel.org/linux-btrfs/cover.1695750478.git.josef@toxicpanda.com/
https://lore.kernel.org/linux-btrfs/cover.1696970227.git.josef@toxicpanda.com/

v2->v3:
- Rebased onto Eric's "fscrypt: track master key presence separately from
  secret" patch.
- Fixed a problem where we weren't setting the logical offset for split bios
  properly, resulting in csum corruptions.
- Updated the documentation and changelog to call out that inline encryption was
  required for extent based encryption and why.
- Folded "fscrypt: disable all but standard v2 policies for extent encryption"
  into "fscrypt: add per-extent encryption support" per Eric's request.
- Changed the behavior of the secret clearing to only do this when we're using
  extent based encryption.
- Updated the blk-crypto patch to have a helper that made sure we're using the
  fallback profile instead of adding a flag to the profile.

I've run this through the tests and everything came out fine.  Thanks,

Josef

Josef Bacik (19):
  fscrypt: add per-extent encryption support
  fscrypt: conditionally don't wipe mk secret until the last active user
    is done
  blk-crypto: add a process bio callback
  fscrypt: add documentation about extent encryption
  btrfs: add infrastructure for safe em freeing
  btrfs: add fscrypt_info and encryption_type to ordered_extent
  btrfs: plumb through setting the fscrypt_info for ordered extents
  btrfs: populate the ordered_extent with the fscrypt context
  btrfs: keep track of fscrypt info and orig_start for dio reads
  btrfs: add an optional encryption context to the end of file extents
  btrfs: pass through fscrypt_extent_info to the file extent helpers
  btrfs: pass the fscrypt_info through the replace extent infrastructure
  btrfs: implement the fscrypt extent encryption hooks
  btrfs: setup fscrypt_extent_info for new extents
  btrfs: populate ordered_extent with the orig offset
  btrfs: set the bio fscrypt context when applicable
  btrfs: add a bio argument to btrfs_csum_one_bio
  btrfs: add orig_logical to btrfs_bio
  btrfs: implement process_bio cb for fscrypt

Omar Sandoval (7):
  fscrypt: expose fscrypt_nokey_name
  btrfs: disable various operations on encrypted inodes
  btrfs: start using fscrypt hooks
  btrfs: add inode encryption contexts
  btrfs: add new FEATURE_INCOMPAT_ENCRYPT flag
  btrfs: adapt readdir for encrypted and nokey names
  btrfs: implement fscrypt ioctls

Sweet Tea Dorminy (8):
  btrfs: disable verity on encrypted inodes
  btrfs: handle nokey names.
  btrfs: add encryption to CONFIG_BTRFS_DEBUG
  btrfs: add get_devices hook for fscrypt
  btrfs: turn on inlinecrypt mount option for encrypt
  btrfs: set file extent encryption excplicitly
  btrfs: add fscrypt_info and encryption_type to extent_map
  btrfs: explicitly track file extent length for replace and drop

 Documentation/filesystems/fscrypt.rst |  41 +++
 block/blk-crypto-fallback.c           |  40 +++
 block/blk-crypto-internal.h           |   8 +
 block/blk-crypto-profile.c            |   2 +
 block/blk-crypto.c                    |   6 +-
 fs/btrfs/Makefile                     |   1 +
 fs/btrfs/accessors.h                  |  50 +++
 fs/btrfs/bio.c                        |  46 ++-
 fs/btrfs/bio.h                        |   6 +
 fs/btrfs/btrfs_inode.h                |   3 +-
 fs/btrfs/compression.c                |   6 +
 fs/btrfs/ctree.h                      |   4 +
 fs/btrfs/defrag.c                     |  10 +-
 fs/btrfs/delayed-inode.c              |  29 +-
 fs/btrfs/delayed-inode.h              |   6 +-
 fs/btrfs/dir-item.c                   | 108 +++++-
 fs/btrfs/dir-item.h                   |  11 +-
 fs/btrfs/extent_io.c                  |  81 ++++-
 fs/btrfs/extent_io.h                  |   3 +
 fs/btrfs/extent_map.c                 | 106 +++++-
 fs/btrfs/extent_map.h                 |  12 +
 fs/btrfs/file-item.c                  |  17 +-
 fs/btrfs/file-item.h                  |   7 +-
 fs/btrfs/file.c                       |  16 +-
 fs/btrfs/fs.h                         |   3 +-
 fs/btrfs/fscrypt.c                    | 326 ++++++++++++++++++
 fs/btrfs/fscrypt.h                    |  95 +++++
 fs/btrfs/inode.c                      | 476 ++++++++++++++++++++------
 fs/btrfs/ioctl.c                      |  41 ++-
 fs/btrfs/ordered-data.c               |  26 +-
 fs/btrfs/ordered-data.h               |  21 +-
 fs/btrfs/reflink.c                    |   8 +
 fs/btrfs/root-tree.c                  |   8 +-
 fs/btrfs/root-tree.h                  |   2 +-
 fs/btrfs/super.c                      |  17 +
 fs/btrfs/sysfs.c                      |   6 +
 fs/btrfs/tree-checker.c               |  66 +++-
 fs/btrfs/tree-log.c                   |  26 +-
 fs/btrfs/verity.c                     |   3 +
 fs/crypto/crypto.c                    |  10 +-
 fs/crypto/fname.c                     |  39 +--
 fs/crypto/fscrypt_private.h           |  44 +++
 fs/crypto/inline_crypt.c              |  87 ++++-
 fs/crypto/keyring.c                   |  18 +-
 fs/crypto/keysetup.c                  | 155 +++++++++
 fs/crypto/policy.c                    |  59 ++++
 include/linux/blk-crypto.h            |   9 +-
 include/linux/fscrypt.h               | 122 +++++++
 include/uapi/linux/btrfs.h            |   1 +
 include/uapi/linux/btrfs_tree.h       |  35 +-
 50 files changed, 2105 insertions(+), 217 deletions(-)
 create mode 100644 fs/btrfs/fscrypt.c
 create mode 100644 fs/btrfs/fscrypt.h

-- 
2.41.0


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2023-10-16 18:22 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-16 18:21 [PATCH v3 00/34] btrfs: add fscrypt support Josef Bacik
2023-10-16 18:21 ` [PATCH v3 01/34] fscrypt: add per-extent encryption support Josef Bacik
2023-10-16 18:21 ` [PATCH v3 02/34] fscrypt: conditionally don't wipe mk secret until the last active user is done Josef Bacik
2023-10-16 18:21 ` [PATCH v3 03/34] blk-crypto: add a process bio callback Josef Bacik
2023-10-16 18:21 ` [PATCH v3 04/34] fscrypt: expose fscrypt_nokey_name Josef Bacik
2023-10-16 18:21 ` [PATCH v3 05/34] fscrypt: add documentation about extent encryption Josef Bacik
2023-10-16 18:21 ` [PATCH v3 06/34] btrfs: add infrastructure for safe em freeing Josef Bacik
2023-10-16 18:21 ` [PATCH v3 07/34] btrfs: disable various operations on encrypted inodes Josef Bacik
2023-10-16 18:21 ` [PATCH v3 08/34] btrfs: disable verity " Josef Bacik
2023-10-16 18:21 ` [PATCH v3 09/34] btrfs: start using fscrypt hooks Josef Bacik
2023-10-16 18:21 ` [PATCH v3 10/34] btrfs: add inode encryption contexts Josef Bacik
2023-10-16 18:21 ` [PATCH v3 11/34] btrfs: add new FEATURE_INCOMPAT_ENCRYPT flag Josef Bacik
2023-10-16 18:21 ` [PATCH v3 12/34] btrfs: adapt readdir for encrypted and nokey names Josef Bacik
2023-10-16 18:21 ` [PATCH v3 13/34] btrfs: handle " Josef Bacik
2023-10-16 18:21 ` [PATCH v3 14/34] btrfs: implement fscrypt ioctls Josef Bacik
2023-10-16 18:21 ` [PATCH v3 15/34] btrfs: add encryption to CONFIG_BTRFS_DEBUG Josef Bacik
2023-10-16 18:21 ` [PATCH v3 16/34] btrfs: add get_devices hook for fscrypt Josef Bacik
2023-10-16 18:21 ` [PATCH v3 17/34] btrfs: turn on inlinecrypt mount option for encrypt Josef Bacik
2023-10-16 18:21 ` [PATCH v3 18/34] btrfs: set file extent encryption excplicitly Josef Bacik
2023-10-16 18:21 ` [PATCH v3 19/34] btrfs: add fscrypt_info and encryption_type to extent_map Josef Bacik
2023-10-16 18:21 ` [PATCH v3 20/34] btrfs: add fscrypt_info and encryption_type to ordered_extent Josef Bacik
2023-10-16 18:21 ` [PATCH v3 21/34] btrfs: plumb through setting the fscrypt_info for ordered extents Josef Bacik
2023-10-16 18:21 ` [PATCH v3 22/34] btrfs: populate the ordered_extent with the fscrypt context Josef Bacik
2023-10-16 18:21 ` [PATCH v3 23/34] btrfs: keep track of fscrypt info and orig_start for dio reads Josef Bacik
2023-10-16 18:21 ` [PATCH v3 24/34] btrfs: add an optional encryption context to the end of file extents Josef Bacik
2023-10-16 18:21 ` [PATCH v3 25/34] btrfs: explicitly track file extent length for replace and drop Josef Bacik
2023-10-16 18:21 ` [PATCH v3 26/34] btrfs: pass through fscrypt_extent_info to the file extent helpers Josef Bacik
2023-10-16 18:21 ` [PATCH v3 27/34] btrfs: pass the fscrypt_info through the replace extent infrastructure Josef Bacik
2023-10-16 18:21 ` [PATCH v3 28/34] btrfs: implement the fscrypt extent encryption hooks Josef Bacik
2023-10-16 18:21 ` [PATCH v3 29/34] btrfs: setup fscrypt_extent_info for new extents Josef Bacik
2023-10-16 18:21 ` [PATCH v3 30/34] btrfs: populate ordered_extent with the orig offset Josef Bacik
2023-10-16 18:21 ` [PATCH v3 31/34] btrfs: set the bio fscrypt context when applicable Josef Bacik
2023-10-16 18:21 ` [PATCH v3 32/34] btrfs: add a bio argument to btrfs_csum_one_bio Josef Bacik
2023-10-16 18:21 ` [PATCH v3 33/34] btrfs: add orig_logical to btrfs_bio Josef Bacik
2023-10-16 18:21 ` [PATCH v3 34/34] btrfs: implement process_bio cb for fscrypt Josef Bacik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).