On Wed, 13 May 2026 at 10:54, Daniel Vacek <[email protected]> wrote: > > Hello, > > These are the remaining parts from former series [1] from Omar, Sweet Tea > and Josef. Some bits of it were split into the separate set [2] before. > > Notably, at this stage encryption is not supported with RAID5/6 setup > and send is also disabled for now. > > For straight git access you can find this series as the `fscrypt-v7` tag > e85358ef9fba here: > > [0] https://github.com/dvacek/linux-btrfs/tree/fscrypt-v7 > > Changes since v6 [3] > * Rebased onto linux v7.1-rc3. > * Adapted to the v7.0 fscrypt API changes, mostly following commit > bb8e2019ad613 ("blk-crypto: handle the fallback above the block layer") > * Addressed all the review feedback, thanks to Eric Biggers, Chris Mason > (and his LLM review prompts) and Neal Gompa. > * Adapted to the v7.1 fscrypt API cleanups, using byte offsets as function > arguments instead of logical block numbers for newly introduced functions. > This should match > https://lore.kernel.org/linux-fscrypt/[email protected]/ > As a result btrfs_set_bio_crypt_ctx_from_extent() and > btrfs_mergeable_encrypted_bio() > helpers were no longer needed and they got removed.
Hi Eric, This is just a gentle ping. I was wondering if you had a chance to look at this version? I believe all your previous feedback has been addressed and this version is solid. Please, let me know your thoughts. Regards, Daniel > There are a few changes since v5 [1]: > * Rebased to btrfs/for-next branch. Couple things changed in the last > years. A few patches were dropped as the code cleaned up or refactored. > More details in the patches themselves. > * As suggested by Qu and Dave, the on-disk format of storing the extent > encryption context was re-designed. Now, a new tree item with dedicated > key is inserted instead of extending the file extent item. As a result > a special care needs to be taken when removing the encrypted extents > to also remove the related encryption context item. > * Fixed bugs found during testing. > > Have a nice day, > Daniel > > [1] v5 > https://lore.kernel.org/linux-btrfs/[email protected]/ > [2] > https://lore.kernel.org/linux-btrfs/[email protected]/ > [3] v6 > https://lore.kernel.org/linux-btrfs/[email protected]/ > > Josef Bacik (33): > fscrypt: add per-extent encryption support > fscrypt: allow inline encryption for extent based encryption > fscrypt: add a __fscrypt_file_open helper > fscrypt: conditionally don't wipe mk secret until the last active user > is done > blk-crypto: add a process bio callback > fscrypt: add a process_bio hook to fscrypt_operations > fscrypt: add documentation about extent encryption > btrfs: add infrastructure for safe em freeing > btrfs: select encryption dependencies if FS_ENCRYPTION > 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 extent encryption context tree item type > btrfs: pass through fscrypt_extent_info to the file extent helpers > 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: limit encrypted writes to 256 segments > btrfs: implement process_bio cb for fscrypt > btrfs: implement read repair for encryption > btrfs: add test_dummy_encryption support > btrfs: make btrfs_ref_to_path handle encrypted filenames > btrfs: deal with encrypted symlinks in send > btrfs: decrypt file names for send > btrfs: load the inode context before sending writes > btrfs: set the appropriate free space settings in reconfigure > btrfs: support encryption with log replay > btrfs: disable auto defrag on encrypted files > btrfs: disable encryption on RAID5/6 > btrfs: disable send if we have encryption enabled > > Omar Sandoval (6): > fscrypt: expose fscrypt_nokey_name > 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 (4): > btrfs: handle nokey names > btrfs: add get_devices hook for fscrypt > btrfs: set file extent encryption excplicitly > btrfs: add fscrypt_info and encryption_type to extent_map > > Documentation/filesystems/fscrypt.rst | 41 +++ > block/blk-crypto-fallback.c | 41 +++ > block/blk-crypto-internal.h | 8 + > block/blk-crypto-profile.c | 2 + > block/blk-crypto.c | 6 +- > fs/btrfs/Kconfig | 4 + > fs/btrfs/Makefile | 1 + > fs/btrfs/accessors.h | 2 + > fs/btrfs/backref.c | 43 ++- > fs/btrfs/bio.c | 155 +++++++++- > fs/btrfs/bio.h | 14 +- > fs/btrfs/btrfs_inode.h | 7 +- > fs/btrfs/compression.c | 6 + > fs/btrfs/ctree.h | 3 + > fs/btrfs/defrag.c | 14 + > fs/btrfs/delayed-inode.c | 25 +- > fs/btrfs/delayed-inode.h | 5 +- > fs/btrfs/dir-item.c | 110 ++++++- > fs/btrfs/dir-item.h | 10 +- > fs/btrfs/direct-io.c | 28 +- > fs/btrfs/disk-io.c | 3 +- > fs/btrfs/extent_io.c | 115 ++++++- > fs/btrfs/extent_io.h | 3 + > fs/btrfs/extent_map.c | 102 ++++++- > fs/btrfs/extent_map.h | 26 ++ > fs/btrfs/file-item.c | 28 +- > fs/btrfs/file-item.h | 2 +- > fs/btrfs/file.c | 79 +++++ > fs/btrfs/fs.h | 6 +- > fs/btrfs/fscrypt.c | 413 ++++++++++++++++++++++++++ > fs/btrfs/fscrypt.h | 86 ++++++ > fs/btrfs/inode.c | 404 +++++++++++++++++++------ > fs/btrfs/ioctl.c | 41 ++- > fs/btrfs/ordered-data.c | 35 ++- > fs/btrfs/ordered-data.h | 14 + > fs/btrfs/reflink.c | 43 ++- > fs/btrfs/root-tree.c | 9 +- > fs/btrfs/root-tree.h | 2 +- > fs/btrfs/send.c | 134 ++++++++- > fs/btrfs/super.c | 99 +++++- > fs/btrfs/super.h | 3 +- > fs/btrfs/sysfs.c | 6 + > fs/btrfs/tree-checker.c | 64 +++- > fs/btrfs/tree-log.c | 34 ++- > fs/btrfs/volumes.c | 5 + > fs/crypto/crypto.c | 10 +- > fs/crypto/fname.c | 36 --- > fs/crypto/fscrypt_private.h | 51 +++- > fs/crypto/hooks.c | 38 ++- > fs/crypto/inline_crypt.c | 91 +++++- > fs/crypto/keyring.c | 18 +- > fs/crypto/keysetup.c | 164 ++++++++++ > fs/crypto/policy.c | 47 +++ > include/linux/blk-crypto.h | 15 +- > include/linux/fscrypt.h | 127 ++++++++ > include/uapi/linux/btrfs.h | 1 + > include/uapi/linux/btrfs_tree.h | 26 +- > 57 files changed, 2665 insertions(+), 240 deletions(-) > create mode 100644 fs/btrfs/fscrypt.c > create mode 100644 fs/btrfs/fscrypt.h > > -- > 2.53.0 >

