Re: [PATCH 08/13] fsverity: expose merkle tree geometry to callers

Eric Biggers
2024-04-05T02:50:47Z

On Fri, Mar 29, 2024 at 05:34:45PM -0700, Darrick J. Wong wrote:
> +/**
> + * fsverity_merkle_tree_geometry() - return Merkle tree geometry
> + * @inode: the inode for which the Merkle tree is being built

This function is actually for inodes that already have fsverity enabled. So the
above comment is misleading.

> +int fsverity_merkle_tree_geometry(struct inode *inode, unsigned int *block_size,
> + u64 *tree_size)
> +{
> + struct fsverity_info *vi;
> + int error;
> +
> + if (!IS_VERITY(inode))
> + return -EOPNOTSUPP;

Maybe use ENODATA, similar to fsverity_ioctl_measure() and
bpf_get_fsverity_digest().

> +
> + error = ensure_verity_info(inode);
> + if (error)
> + return error;
> +
> + vi = fsverity_get_info(inode);

This can just use 'vi = inode->i_verity_info', since ensure_verity_info() was
called.

It should also be documented that an open need not have been done on the file
yet, as this behavior differs from functions like fsverity_get_digest() that
require that an open was done first.

- Eric