From: Eric Biggers <ebiggers@kernel.org>
To: linux-fscrypt@vger.kernel.org, fsverity@lists.linux.dev
Cc: linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net,
linux-mtd@lists.infradead.org, linux-btrfs@vger.kernel.org,
ceph-devel@vger.kernel.org,
Christian Brauner <brauner@kernel.org>,
Eric Biggers <ebiggers@kernel.org>
Subject: [PATCH v5 00/13] Move fscrypt and fsverity info out of struct inode
Date: Sun, 10 Aug 2025 00:56:53 -0700 [thread overview]
Message-ID: <20250810075706.172910-1-ebiggers@kernel.org> (raw)
This is a cleaned-up implementation of moving the i_crypt_info and
i_verity_info pointers out of 'struct inode' and into the fs-specific
part of the inode, as proposed previously by Christian at
https://lore.kernel.org/r/20250723-work-inode-fscrypt-v4-0-c8e11488a0e6@kernel.org/
The high-level concept is still the same: fs/crypto/ and fs/verity/
locate the pointer by adding an offset to the address of struct inode.
The offset is retrieved from fscrypt_operations or fsverity_operations.
I've cleaned up a lot of the details, including:
- Grouped changes into patches differently
- Rewrote commit messages and comments to be clearer
- Adjusted code formatting to be consistent with existing code
- Removed unneeded #ifdefs
- Improved choice and location of VFS_WARN_ON_ONCE() statements
- Added missing kerneldoc for ubifs_inode::i_crypt_info
- Moved field initialization to init_once functions when they exist
- Improved ceph offset calculation and removed unneeded static_asserts
- fsverity_get_info() now checks IS_VERITY() instead of v_ops
- fscrypt_put_encryption_info() no longer checks IS_ENCRYPTED(), since I
no longer think it's actually correct there.
- verity_data_blocks() now keeps doing a raw dereference
- Dropped fscrypt_set_inode_info()
- Renamed some functions
- Do offset calculation using int, so we don't rely on unsigned overflow
- And more.
For v4 and earlier, see
https://lore.kernel.org/r/20250723-work-inode-fscrypt-v4-0-c8e11488a0e6@kernel.org/
I'd like to take this series through the fscrypt tree for 6.18.
(fsverity normally has a separate tree, but by choosing just one tree
for this, we'll avoid conflicts in some places.)
Eric Biggers (13):
fscrypt: replace raw loads of info pointer with helper function
fscrypt: add support for info in fs-specific part of inode
ext4: move crypt info pointer to fs-specific part of inode
f2fs: move crypt info pointer to fs-specific part of inode
ubifs: move crypt info pointer to fs-specific part of inode
ceph: move crypt info pointer to fs-specific part of inode
fs: remove inode::i_crypt_info
fsverity: add support for info in fs-specific part of inode
ext4: move verity info pointer to fs-specific part of inode
f2fs: move verity info pointer to fs-specific part of inode
btrfs: move verity info pointer to fs-specific part of inode
fs: remove inode::i_verity_info
fsverity: check IS_VERITY() in fsverity_cleanup_inode()
fs/btrfs/btrfs_inode.h | 5 ++++
fs/btrfs/inode.c | 3 ++
fs/btrfs/verity.c | 2 ++
fs/ceph/crypto.c | 2 ++
fs/ceph/inode.c | 1 +
fs/ceph/super.h | 1 +
fs/crypto/bio.c | 2 +-
fs/crypto/crypto.c | 14 +++++----
fs/crypto/fname.c | 11 +++----
fs/crypto/fscrypt_private.h | 4 +--
fs/crypto/hooks.c | 2 +-
fs/crypto/inline_crypt.c | 12 ++++----
fs/crypto/keysetup.c | 43 ++++++++++++++++-----------
fs/crypto/policy.c | 7 +++--
fs/ext4/crypto.c | 2 ++
fs/ext4/ext4.h | 8 +++++
fs/ext4/super.c | 6 ++++
fs/ext4/verity.c | 2 ++
fs/f2fs/f2fs.h | 6 ++++
fs/f2fs/super.c | 10 ++++++-
fs/f2fs/verity.c | 2 ++
fs/ubifs/crypto.c | 2 ++
fs/ubifs/ubifs.h | 4 +++
fs/verity/enable.c | 6 ++--
fs/verity/fsverity_private.h | 9 +++---
fs/verity/open.c | 23 ++++++++-------
fs/verity/verify.c | 2 +-
include/linux/fs.h | 10 -------
include/linux/fscrypt.h | 40 +++++++++++++++++++++++--
include/linux/fsverity.h | 57 +++++++++++++++++++++++++++++-------
30 files changed, 215 insertions(+), 83 deletions(-)
base-commit: 561c80369df0733ba0574882a1635287b20f9de2
--
2.50.1
WARNING: multiple messages have this Message-ID (diff)
From: Eric Biggers via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net>
To: linux-fscrypt@vger.kernel.org, fsverity@lists.linux.dev
Cc: Christian Brauner <brauner@kernel.org>,
linux-f2fs-devel@lists.sourceforge.net,
Eric Biggers <ebiggers@kernel.org>,
linux-mtd@lists.infradead.org, linux-fsdevel@vger.kernel.org,
ceph-devel@vger.kernel.org, linux-ext4@vger.kernel.org,
linux-btrfs@vger.kernel.org
Subject: [f2fs-dev] [PATCH v5 00/13] Move fscrypt and fsverity info out of struct inode
Date: Sun, 10 Aug 2025 00:56:53 -0700 [thread overview]
Message-ID: <20250810075706.172910-1-ebiggers@kernel.org> (raw)
This is a cleaned-up implementation of moving the i_crypt_info and
i_verity_info pointers out of 'struct inode' and into the fs-specific
part of the inode, as proposed previously by Christian at
https://lore.kernel.org/r/20250723-work-inode-fscrypt-v4-0-c8e11488a0e6@kernel.org/
The high-level concept is still the same: fs/crypto/ and fs/verity/
locate the pointer by adding an offset to the address of struct inode.
The offset is retrieved from fscrypt_operations or fsverity_operations.
I've cleaned up a lot of the details, including:
- Grouped changes into patches differently
- Rewrote commit messages and comments to be clearer
- Adjusted code formatting to be consistent with existing code
- Removed unneeded #ifdefs
- Improved choice and location of VFS_WARN_ON_ONCE() statements
- Added missing kerneldoc for ubifs_inode::i_crypt_info
- Moved field initialization to init_once functions when they exist
- Improved ceph offset calculation and removed unneeded static_asserts
- fsverity_get_info() now checks IS_VERITY() instead of v_ops
- fscrypt_put_encryption_info() no longer checks IS_ENCRYPTED(), since I
no longer think it's actually correct there.
- verity_data_blocks() now keeps doing a raw dereference
- Dropped fscrypt_set_inode_info()
- Renamed some functions
- Do offset calculation using int, so we don't rely on unsigned overflow
- And more.
For v4 and earlier, see
https://lore.kernel.org/r/20250723-work-inode-fscrypt-v4-0-c8e11488a0e6@kernel.org/
I'd like to take this series through the fscrypt tree for 6.18.
(fsverity normally has a separate tree, but by choosing just one tree
for this, we'll avoid conflicts in some places.)
Eric Biggers (13):
fscrypt: replace raw loads of info pointer with helper function
fscrypt: add support for info in fs-specific part of inode
ext4: move crypt info pointer to fs-specific part of inode
f2fs: move crypt info pointer to fs-specific part of inode
ubifs: move crypt info pointer to fs-specific part of inode
ceph: move crypt info pointer to fs-specific part of inode
fs: remove inode::i_crypt_info
fsverity: add support for info in fs-specific part of inode
ext4: move verity info pointer to fs-specific part of inode
f2fs: move verity info pointer to fs-specific part of inode
btrfs: move verity info pointer to fs-specific part of inode
fs: remove inode::i_verity_info
fsverity: check IS_VERITY() in fsverity_cleanup_inode()
fs/btrfs/btrfs_inode.h | 5 ++++
fs/btrfs/inode.c | 3 ++
fs/btrfs/verity.c | 2 ++
fs/ceph/crypto.c | 2 ++
fs/ceph/inode.c | 1 +
fs/ceph/super.h | 1 +
fs/crypto/bio.c | 2 +-
fs/crypto/crypto.c | 14 +++++----
fs/crypto/fname.c | 11 +++----
fs/crypto/fscrypt_private.h | 4 +--
fs/crypto/hooks.c | 2 +-
fs/crypto/inline_crypt.c | 12 ++++----
fs/crypto/keysetup.c | 43 ++++++++++++++++-----------
fs/crypto/policy.c | 7 +++--
fs/ext4/crypto.c | 2 ++
fs/ext4/ext4.h | 8 +++++
fs/ext4/super.c | 6 ++++
fs/ext4/verity.c | 2 ++
fs/f2fs/f2fs.h | 6 ++++
fs/f2fs/super.c | 10 ++++++-
fs/f2fs/verity.c | 2 ++
fs/ubifs/crypto.c | 2 ++
fs/ubifs/ubifs.h | 4 +++
fs/verity/enable.c | 6 ++--
fs/verity/fsverity_private.h | 9 +++---
fs/verity/open.c | 23 ++++++++-------
fs/verity/verify.c | 2 +-
include/linux/fs.h | 10 -------
include/linux/fscrypt.h | 40 +++++++++++++++++++++++--
include/linux/fsverity.h | 57 +++++++++++++++++++++++++++++-------
30 files changed, 215 insertions(+), 83 deletions(-)
base-commit: 561c80369df0733ba0574882a1635287b20f9de2
--
2.50.1
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
WARNING: multiple messages have this Message-ID (diff)
From: Eric Biggers <ebiggers@kernel.org>
To: linux-fscrypt@vger.kernel.org, fsverity@lists.linux.dev
Cc: linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net,
linux-mtd@lists.infradead.org, linux-btrfs@vger.kernel.org,
ceph-devel@vger.kernel.org,
Christian Brauner <brauner@kernel.org>,
Eric Biggers <ebiggers@kernel.org>
Subject: [PATCH v5 00/13] Move fscrypt and fsverity info out of struct inode
Date: Sun, 10 Aug 2025 00:56:53 -0700 [thread overview]
Message-ID: <20250810075706.172910-1-ebiggers@kernel.org> (raw)
This is a cleaned-up implementation of moving the i_crypt_info and
i_verity_info pointers out of 'struct inode' and into the fs-specific
part of the inode, as proposed previously by Christian at
https://lore.kernel.org/r/20250723-work-inode-fscrypt-v4-0-c8e11488a0e6@kernel.org/
The high-level concept is still the same: fs/crypto/ and fs/verity/
locate the pointer by adding an offset to the address of struct inode.
The offset is retrieved from fscrypt_operations or fsverity_operations.
I've cleaned up a lot of the details, including:
- Grouped changes into patches differently
- Rewrote commit messages and comments to be clearer
- Adjusted code formatting to be consistent with existing code
- Removed unneeded #ifdefs
- Improved choice and location of VFS_WARN_ON_ONCE() statements
- Added missing kerneldoc for ubifs_inode::i_crypt_info
- Moved field initialization to init_once functions when they exist
- Improved ceph offset calculation and removed unneeded static_asserts
- fsverity_get_info() now checks IS_VERITY() instead of v_ops
- fscrypt_put_encryption_info() no longer checks IS_ENCRYPTED(), since I
no longer think it's actually correct there.
- verity_data_blocks() now keeps doing a raw dereference
- Dropped fscrypt_set_inode_info()
- Renamed some functions
- Do offset calculation using int, so we don't rely on unsigned overflow
- And more.
For v4 and earlier, see
https://lore.kernel.org/r/20250723-work-inode-fscrypt-v4-0-c8e11488a0e6@kernel.org/
I'd like to take this series through the fscrypt tree for 6.18.
(fsverity normally has a separate tree, but by choosing just one tree
for this, we'll avoid conflicts in some places.)
Eric Biggers (13):
fscrypt: replace raw loads of info pointer with helper function
fscrypt: add support for info in fs-specific part of inode
ext4: move crypt info pointer to fs-specific part of inode
f2fs: move crypt info pointer to fs-specific part of inode
ubifs: move crypt info pointer to fs-specific part of inode
ceph: move crypt info pointer to fs-specific part of inode
fs: remove inode::i_crypt_info
fsverity: add support for info in fs-specific part of inode
ext4: move verity info pointer to fs-specific part of inode
f2fs: move verity info pointer to fs-specific part of inode
btrfs: move verity info pointer to fs-specific part of inode
fs: remove inode::i_verity_info
fsverity: check IS_VERITY() in fsverity_cleanup_inode()
fs/btrfs/btrfs_inode.h | 5 ++++
fs/btrfs/inode.c | 3 ++
fs/btrfs/verity.c | 2 ++
fs/ceph/crypto.c | 2 ++
fs/ceph/inode.c | 1 +
fs/ceph/super.h | 1 +
fs/crypto/bio.c | 2 +-
fs/crypto/crypto.c | 14 +++++----
fs/crypto/fname.c | 11 +++----
fs/crypto/fscrypt_private.h | 4 +--
fs/crypto/hooks.c | 2 +-
fs/crypto/inline_crypt.c | 12 ++++----
fs/crypto/keysetup.c | 43 ++++++++++++++++-----------
fs/crypto/policy.c | 7 +++--
fs/ext4/crypto.c | 2 ++
fs/ext4/ext4.h | 8 +++++
fs/ext4/super.c | 6 ++++
fs/ext4/verity.c | 2 ++
fs/f2fs/f2fs.h | 6 ++++
fs/f2fs/super.c | 10 ++++++-
fs/f2fs/verity.c | 2 ++
fs/ubifs/crypto.c | 2 ++
fs/ubifs/ubifs.h | 4 +++
fs/verity/enable.c | 6 ++--
fs/verity/fsverity_private.h | 9 +++---
fs/verity/open.c | 23 ++++++++-------
fs/verity/verify.c | 2 +-
include/linux/fs.h | 10 -------
include/linux/fscrypt.h | 40 +++++++++++++++++++++++--
include/linux/fsverity.h | 57 +++++++++++++++++++++++++++++-------
30 files changed, 215 insertions(+), 83 deletions(-)
base-commit: 561c80369df0733ba0574882a1635287b20f9de2
--
2.50.1
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next reply other threads:[~2025-08-10 8:00 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-10 7:56 Eric Biggers [this message]
2025-08-10 7:56 ` [PATCH v5 00/13] Move fscrypt and fsverity info out of struct inode Eric Biggers
2025-08-10 7:56 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:56 ` [PATCH v5 01/13] fscrypt: replace raw loads of info pointer with helper function Eric Biggers
2025-08-10 7:56 ` Eric Biggers
2025-08-10 7:56 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:56 ` [PATCH v5 02/13] fscrypt: add support for info in fs-specific part of inode Eric Biggers
2025-08-10 7:56 ` Eric Biggers
2025-08-10 7:56 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:56 ` [PATCH v5 03/13] ext4: move crypt info pointer to " Eric Biggers
2025-08-10 7:56 ` Eric Biggers
2025-08-10 7:56 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-11 11:13 ` Theodore Ts'o
2025-08-11 11:13 ` Theodore Ts'o
2025-08-11 11:13 ` [f2fs-dev] " Theodore Ts'o
2025-08-10 7:56 ` [PATCH v5 04/13] f2fs: " Eric Biggers
2025-08-10 7:56 ` Eric Biggers
2025-08-10 7:56 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:56 ` [PATCH v5 05/13] ubifs: " Eric Biggers
2025-08-10 7:56 ` Eric Biggers
2025-08-10 7:56 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:56 ` [PATCH v5 06/13] ceph: " Eric Biggers
2025-08-10 7:56 ` Eric Biggers
2025-08-10 7:56 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:57 ` [PATCH v5 07/13] fs: remove inode::i_crypt_info Eric Biggers
2025-08-10 7:57 ` Eric Biggers
2025-08-10 7:57 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:57 ` [PATCH v5 08/13] fsverity: add support for info in fs-specific part of inode Eric Biggers
2025-08-10 7:57 ` Eric Biggers
2025-08-10 7:57 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:57 ` [PATCH v5 09/13] ext4: move verity info pointer to " Eric Biggers
2025-08-10 7:57 ` Eric Biggers
2025-08-10 7:57 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-11 11:13 ` Theodore Ts'o
2025-08-11 11:13 ` Theodore Ts'o
2025-08-11 11:13 ` [f2fs-dev] " Theodore Ts'o
2025-08-10 7:57 ` [PATCH v5 10/13] f2fs: " Eric Biggers
2025-08-10 7:57 ` Eric Biggers
2025-08-10 7:57 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:57 ` [PATCH v5 11/13] btrfs: " Eric Biggers
2025-08-10 7:57 ` Eric Biggers
2025-08-10 7:57 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:57 ` [PATCH v5 12/13] fs: remove inode::i_verity_info Eric Biggers
2025-08-10 7:57 ` Eric Biggers
2025-08-10 7:57 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 7:57 ` [PATCH v5 13/13] fsverity: check IS_VERITY() in fsverity_cleanup_inode() Eric Biggers
2025-08-10 7:57 ` Eric Biggers
2025-08-10 7:57 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 8:47 ` [PATCH v5 00/13] Move fscrypt and fsverity info out of struct inode Christian Brauner
2025-08-10 8:47 ` Christian Brauner
2025-08-10 8:47 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2025-08-10 9:03 ` Eric Biggers
2025-08-10 9:03 ` Eric Biggers
2025-08-10 9:03 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-11 13:17 ` Christian Brauner
2025-08-11 13:17 ` Christian Brauner
2025-08-11 13:17 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2025-08-11 13:34 ` Christian Brauner
2025-08-11 13:34 ` Christian Brauner
2025-08-11 13:34 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2025-08-11 16:39 ` Eric Biggers
2025-08-11 16:39 ` Eric Biggers
2025-08-11 16:39 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-15 14:28 ` Christian Brauner
2025-08-15 14:28 ` Christian Brauner
2025-08-15 14:28 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
2025-08-10 14:49 ` Christoph Hellwig
2025-08-10 14:49 ` Christoph Hellwig
2025-08-10 14:49 ` [f2fs-dev] " Christoph Hellwig
2025-08-10 17:03 ` Eric Biggers
2025-08-10 17:03 ` Eric Biggers
2025-08-10 17:03 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2025-08-10 17:14 ` Christoph Hellwig
2025-08-10 17:14 ` Christoph Hellwig
2025-08-10 17:14 ` [f2fs-dev] " Christoph Hellwig
2025-08-11 13:35 ` Christian Brauner
2025-08-11 13:35 ` Christian Brauner
2025-08-11 13:35 ` [f2fs-dev] " Christian Brauner via Linux-f2fs-devel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250810075706.172910-1-ebiggers@kernel.org \
--to=ebiggers@kernel.org \
--cc=brauner@kernel.org \
--cc=ceph-devel@vger.kernel.org \
--cc=fsverity@lists.linux.dev \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fscrypt@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.