]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fsverity: deconstify the inode pointer in struct fsverity_info
authorChristoph Hellwig <hch@lst.de>
Mon, 2 Feb 2026 06:06:34 +0000 (07:06 +0100)
committerEric Biggers <ebiggers@kernel.org>
Tue, 3 Feb 2026 01:15:26 +0000 (17:15 -0800)
A lot of file system code expects a non-const inode pointer.  Dropping
the const qualifier here allows using the inode pointer in
verify_data_block and prepares for further argument reductions.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Link: https://lore.kernel.org/r/20260202060754.270269-6-hch@lst.de
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
fs/verity/fsverity_private.h
fs/verity/open.c
fs/verity/verify.c

index dd20b138d452fa61db532467f925044dd627b8c7..f9f3936b0a899b180f406c0e65a046ee8930a284 100644 (file)
@@ -73,7 +73,7 @@ struct fsverity_info {
        struct merkle_tree_params tree_params;
        u8 root_hash[FS_VERITY_MAX_DIGEST_SIZE];
        u8 file_digest[FS_VERITY_MAX_DIGEST_SIZE];
-       const struct inode *inode;
+       struct inode *inode;
        unsigned long *hash_block_verified;
 };
 
@@ -124,7 +124,7 @@ int fsverity_init_merkle_tree_params(struct merkle_tree_params *params,
                                     unsigned int log_blocksize,
                                     const u8 *salt, size_t salt_size);
 
-struct fsverity_info *fsverity_create_info(const struct inode *inode,
+struct fsverity_info *fsverity_create_info(struct inode *inode,
                                           struct fsverity_descriptor *desc);
 
 void fsverity_set_info(struct inode *inode, struct fsverity_info *vi);
index 090cb77326eea2aa758e6051042bb947b735c530..128502cf0a2362a38b54241ed8c4a9c856c37400 100644 (file)
@@ -175,7 +175,7 @@ static void compute_file_digest(const struct fsverity_hash_alg *hash_alg,
  * appended builtin signature), and check the signature if present.  The
  * fsverity_descriptor must have already undergone basic validation.
  */
-struct fsverity_info *fsverity_create_info(const struct inode *inode,
+struct fsverity_info *fsverity_create_info(struct inode *inode,
                                           struct fsverity_descriptor *desc)
 {
        struct fsverity_info *vi;
index 81e4c6012eb5e0d6472d41de55efab417524e440..31045d83ace4743836d6d8cea6371d1db6cfd6db 100644 (file)
@@ -156,9 +156,10 @@ static bool is_hash_block_verified(struct fsverity_info *vi, struct page *hpage,
  *
  * Return: %true if the data block is valid, else %false.
  */
-static bool verify_data_block(struct inode *inode, struct fsverity_info *vi,
+static bool verify_data_block(struct fsverity_info *vi,
                              const struct fsverity_pending_block *dblock)
 {
+       struct inode *inode = vi->inode;
        const u64 data_pos = dblock->pos;
        const struct merkle_tree_params *params = &vi->tree_params;
        const unsigned int hsize = params->digest_size;
@@ -361,7 +362,7 @@ fsverity_verify_pending_blocks(struct fsverity_verification_context *ctx)
        }
 
        for (i = 0; i < ctx->num_pending; i++) {
-               if (!verify_data_block(ctx->inode, vi, &ctx->pending_blocks[i]))
+               if (!verify_data_block(vi, &ctx->pending_blocks[i]))
                        return false;
        }
        fsverity_clear_pending_blocks(ctx);