]> git.baikalelectronics.ru Git - kernel.git/commitdiff
btrfs: disable scrub for extent-tree-v2
authorJosef Bacik <josef@toxicpanda.com>
Wed, 15 Dec 2021 20:40:02 +0000 (15:40 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 14 Mar 2022 12:13:48 +0000 (13:13 +0100)
Scrub depends on extent references for every block, and with extent tree
v2 we won't have that, so disable scrub until we can add back the proper
code to handle extent-tree-v2.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c

index 7a59887a2b544279360f36f9bfe7c593f370eff5..ecf3e05104aaa6d0f0b11369321a7c6dc7c6c738 100644 (file)
@@ -3979,6 +3979,11 @@ static long btrfs_ioctl_scrub(struct file *file, void __user *arg)
        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;
 
+       if (btrfs_fs_incompat(fs_info, EXTENT_TREE_V2)) {
+               btrfs_err(fs_info, "scrub is not supported on extent tree v2 yet");
+               return -EINVAL;
+       }
+
        sa = memdup_user(arg, sizeof(*sa));
        if (IS_ERR(sa))
                return PTR_ERR(sa);