btrfs: handle FS_IOC_READ_VERITY_METADATA ioctl
authorAllison Karlitskaya <allison.karlitskaya@redhat.com>
Tue, 26 Nov 2024 15:23:31 +0000 (16:23 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 13 Jan 2025 13:53:14 +0000 (14:53 +0100)
Commit 146054090b08 ("btrfs: initial fsverity support") introduced
fs-verity support for btrfs, but didn't add support for
FS_IOC_READ_VERITY_METADATA to directly query the Merkle tree,
descriptor and signature blocks for fs-verity enabled files.

Add the (trival) implementation: we just need to wire it through to the
fs-verity code, the same way as is done in the other two filesystems
which support this ioctl (ext4, f2fs). The fs-verity code already has
access to the required data.

This is also safe to backport to older stable trees (5.15+) if needed.

Signed-off-by: Allison Karlitskaya <allison.karlitskaya@redhat.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c

index 4d9305fa37a8c57bf102399abdf3f752821c8969..baecb19404ad88dfc671e235858466d4ad37368e 100644 (file)
@@ -5308,6 +5308,8 @@ long btrfs_ioctl(struct file *file, unsigned int
                return fsverity_ioctl_enable(file, (const void __user *)argp);
        case FS_IOC_MEASURE_VERITY:
                return fsverity_ioctl_measure(file, argp);
+       case FS_IOC_READ_VERITY_METADATA:
+               return fsverity_ioctl_read_metadata(file, argp);
        case BTRFS_IOC_ENCODED_READ:
                return btrfs_ioctl_encoded_read(file, argp, false);
        case BTRFS_IOC_ENCODED_WRITE: