]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: move verity info pointer to fs-specific part of inode
authorEric Biggers <ebiggers@kernel.org>
Sun, 10 Aug 2025 07:57:04 +0000 (00:57 -0700)
committerChristian Brauner <brauner@kernel.org>
Thu, 21 Aug 2025 11:58:08 +0000 (13:58 +0200)
Move the fsverity_info pointer into the filesystem-specific part of the
inode by adding the field btrfs_inode::i_verity_info and configuring
fsverity_operations::inode_info_offs accordingly.

This is a prerequisite for a later commit that removes
inode::i_verity_info, saving memory and improving cache efficiency on
filesystems that don't support fsverity.

Co-developed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Link: https://lore.kernel.org/20250810075706.172910-12-ebiggers@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/btrfs/btrfs_inode.h
fs/btrfs/inode.c
fs/btrfs/verity.c

index b99fb0273292904b4de2c1317ea1651e7a31b0d8..2c9489497cbeac0dfccf5c8c316316cfca8420c6 100644 (file)
@@ -338,6 +338,11 @@ struct btrfs_inode {
        struct list_head delayed_iput;
 
        struct rw_semaphore i_mmap_lock;
+
+#ifdef CONFIG_FS_VERITY
+       struct fsverity_info *i_verity_info;
+#endif
+
        struct inode vfs_inode;
 };
 
index b77dd22b8cdbe3601028594efadd32e06e83036b..de722b232ec145963f27612e7df85760d5df09cb 100644 (file)
@@ -7961,6 +7961,9 @@ static void init_once(void *foo)
        struct btrfs_inode *ei = foo;
 
        inode_init_once(&ei->vfs_inode);
+#ifdef CONFIG_FS_VERITY
+       ei->i_verity_info = NULL;
+#endif
 }
 
 void __cold btrfs_destroy_cachep(void)
index b7a96a005487e179fb34f0df5e43f2dcc19843e6..4633cbcfcdb90098ca98550115677f63e51b21e6 100644 (file)
@@ -802,6 +802,8 @@ static int btrfs_write_merkle_tree_block(struct inode *inode, const void *buf,
 }
 
 const struct fsverity_operations btrfs_verityops = {
+       .inode_info_offs         = (int)offsetof(struct btrfs_inode, i_verity_info) -
+                                  (int)offsetof(struct btrfs_inode, vfs_inode),
        .begin_enable_verity     = btrfs_begin_enable_verity,
        .end_enable_verity       = btrfs_end_enable_verity,
        .get_verity_descriptor   = btrfs_get_verity_descriptor,