]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: send: add support for fs-verity
authorBoris Burkov <boris@bur.io>
Mon, 15 Aug 2022 20:54:28 +0000 (13:54 -0700)
committerDavid Sterba <dsterba@suse.com>
Mon, 26 Sep 2022 10:27:55 +0000 (12:27 +0200)
commit8e8b1a3dda20e4d73c446e7ab49b53300494f3f5
tree0ea2e8084cf69994d818ec9a0bc9ba50d3ab82b4
parentd4ad6f87246047818ef2950a60e7983da5106548
btrfs: send: add support for fs-verity

Preserve the fs-verity status of a btrfs file across send/recv.

There is no facility for installing the Merkle tree contents directly on
the receiving filesystem, so we package up the parameters used to enable
verity found in the verity descriptor. This gives the receive side
enough information to properly enable verity again. Note that this means
that receive will have to re-compute the whole Merkle tree, similar to
how compression worked before encoded_write.

Since the file becomes read-only after verity is enabled, it is
important that verity is added to the send stream after any file writes.
Therefore, when we process a verity item, merely note that it happened,
then actually create the command in the send stream during
'finish_inode_if_needed'.

This also creates V3 of the send stream format, without any format
changes besides adding the new commands and attributes.

Signed-off-by: Boris Burkov <boris@bur.io>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/send.c
fs/btrfs/send.h
fs/btrfs/verity.c
fs/verity/fsverity_private.h
include/linux/fsverity.h