Commit 7e36e044 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Eric Biggers
Browse files

fsverity: deconstify the inode pointer in struct fsverity_info



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: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
Link: https://lore.kernel.org/r/20260202060754.270269-6-hch@lst.de


Signed-off-by: default avatarEric Biggers <ebiggers@kernel.org>
parent f1a6cf44
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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;
+3 −2
Original line number Diff line number Diff line
@@ -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);