mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
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: 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>
This commit is contained in:
committed by
Eric Biggers
parent
f1a6cf44b3
commit
7e36e04495
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user