Message ID | 9fbfdc5ea7ad2059ff0560ddf079bd1daecd971e.1701468306.git.josef@toxicpanda.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: add fscrypt support | expand |
On Fri, Dec 01, 2023 at 05:11:07PM -0500, Josef Bacik wrote: > From: Sweet Tea Dorminy <sweettea-kernel@dorminy.me> > > Right now there isn't a way to encrypt things that aren't either > filenames in directories or data on blocks on disk with extent > encryption, so for now, disable verity usage with encryption on btrfs. > > Signed-off-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me> > Signed-off-by: Josef Bacik <josef@toxicpanda.com> > --- > fs/btrfs/verity.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/btrfs/verity.c b/fs/btrfs/verity.c > index 66e2270b0dae..92536913df04 100644 > --- a/fs/btrfs/verity.c > +++ b/fs/btrfs/verity.c > @@ -588,6 +588,9 @@ static int btrfs_begin_enable_verity(struct file *filp) > > ASSERT(inode_is_locked(file_inode(filp))); > > + if (IS_ENCRYPTED(&inode->vfs_inode)) > + return -EINVAL; As per the documentation for FS_IOC_ENABLE_VERITY (https://docs.kernel.org/filesystems/fsverity.html#fs-ioc-enable-verity), the error code for the case of "the filesystem does not support fs-verity on this file" should be EOPNOTSUPP, not EINVAL. That's what ext4 returns if you try to enable verity on a file that doesn't use extents, for example. - Eric
diff --git a/fs/btrfs/verity.c b/fs/btrfs/verity.c index 66e2270b0dae..92536913df04 100644 --- a/fs/btrfs/verity.c +++ b/fs/btrfs/verity.c @@ -588,6 +588,9 @@ static int btrfs_begin_enable_verity(struct file *filp) ASSERT(inode_is_locked(file_inode(filp))); + if (IS_ENCRYPTED(&inode->vfs_inode)) + return -EINVAL; + if (test_bit(BTRFS_INODE_VERITY_IN_PROGRESS, &inode->runtime_flags)) return -EBUSY;