btrfs: check-integrity: remove CONFIG_BTRFS_FS_CHECK_INTEGRITY option
authorQu Wenruo <wqu@suse.com>
Fri, 8 Sep 2023 06:42:17 +0000 (14:42 +0800)
committerDavid Sterba <dsterba@suse.com>
Thu, 12 Oct 2023 14:44:05 +0000 (16:44 +0200)
Since all check-integrity entry points have been removed, let's also
remove the config and all related code relying on that.

And since we have removed the mount option for check-integrity, we also
need to re-number all the BTRFS_MOUNT_* enums.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/Kconfig
fs/btrfs/disk-io.c
fs/btrfs/fs.h
fs/btrfs/super.c

index a25c991..4fb925e 100644 (file)
@@ -48,27 +48,6 @@ config BTRFS_FS_POSIX_ACL
 
          If you don't know what Access Control Lists are, say N
 
-config BTRFS_FS_CHECK_INTEGRITY
-       bool "Btrfs with integrity check tool compiled in (DEPRECATED)"
-       depends on BTRFS_FS
-       help
-         This feature has been deprecated and will be removed in 6.7.
-
-         Adds code that examines all block write requests (including
-         writes of the super block). The goal is to verify that the
-         state of the filesystem on disk is always consistent, i.e.,
-         after a power-loss or kernel panic event the filesystem is
-         in a consistent state.
-
-         If the integrity check tool is included and activated in
-         the mount options, plenty of kernel memory is used, and
-         plenty of additional CPU cycles are spent. Enabling this
-         functionality is not intended for normal use.
-
-         In most cases, unless you are a btrfs developer who needs
-         to verify the integrity of (super)-block write requests
-         during the run of a regression test, say N
-
 config BTRFS_FS_RUN_SANITY_TESTS
        bool "Btrfs will run sanity tests upon loading"
        depends on BTRFS_FS
index 1a400f3..4c5d710 100644 (file)
@@ -2736,9 +2736,6 @@ void btrfs_init_fs_info(struct btrfs_fs_info *fs_info)
        spin_lock_init(&fs_info->ordered_root_lock);
 
        btrfs_init_scrub(fs_info);
-#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
-       fs_info->check_integrity_print_mask = 0;
-#endif
        btrfs_init_balance(fs_info);
        btrfs_init_async_reclaim_work(fs_info);
 
@@ -3904,21 +3901,6 @@ static void write_dev_flush(struct btrfs_device *device)
 
        device->last_flush_error = BLK_STS_OK;
 
-#ifndef CONFIG_BTRFS_FS_CHECK_INTEGRITY
-       /*
-        * When a disk has write caching disabled, we skip submission of a bio
-        * with flush and sync requests before writing the superblock, since
-        * it's not needed. However when the integrity checker is enabled, this
-        * results in reports that there are metadata blocks referred by a
-        * superblock that were not properly flushed. So don't skip the bio
-        * submission only when the integrity checker is enabled for the sake
-        * of simplicity, since this is a debug tool and not meant for use in
-        * non-debug builds.
-        */
-       if (!bdev_write_cache(device->bdev))
-               return;
-#endif
-
        bio_init(bio, device->bdev, NULL, 0,
                 REQ_OP_WRITE | REQ_SYNC | REQ_PREFLUSH);
        bio->bi_end_io = btrfs_end_empty_barrier;
@@ -4422,16 +4404,6 @@ void btrfs_mark_buffer_dirty(struct extent_buffer *buf)
                WARN(1, KERN_CRIT "btrfs transid mismatch buffer %llu, found %llu running %llu\n",
                        buf->start, transid, fs_info->generation);
        set_extent_buffer_dirty(buf);
-#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
-       /*
-        * btrfs_check_leaf() won't check item data if we don't have WRITTEN
-        * set, so this will only validate the basic structure of the items.
-        */
-       if (btrfs_header_level(buf) == 0 && btrfs_check_leaf(buf)) {
-               btrfs_print_leaf(buf);
-               ASSERT(0);
-       }
-#endif
 }
 
 static void __btrfs_btree_balance_dirty(struct btrfs_fs_info *fs_info,
index a523d64..d84a390 100644 (file)
@@ -171,19 +171,17 @@ enum {
        BTRFS_MOUNT_AUTO_DEFRAG                 = (1UL << 16),
        BTRFS_MOUNT_USEBACKUPROOT               = (1UL << 17),
        BTRFS_MOUNT_SKIP_BALANCE                = (1UL << 18),
-       BTRFS_MOUNT_CHECK_INTEGRITY             = (1UL << 19),
-       BTRFS_MOUNT_CHECK_INTEGRITY_DATA        = (1UL << 20),
-       BTRFS_MOUNT_PANIC_ON_FATAL_ERROR        = (1UL << 21),
-       BTRFS_MOUNT_RESCAN_UUID_TREE            = (1UL << 22),
-       BTRFS_MOUNT_FRAGMENT_DATA               = (1UL << 23),
-       BTRFS_MOUNT_FRAGMENT_METADATA           = (1UL << 24),
-       BTRFS_MOUNT_FREE_SPACE_TREE             = (1UL << 25),
-       BTRFS_MOUNT_NOLOGREPLAY                 = (1UL << 26),
-       BTRFS_MOUNT_REF_VERIFY                  = (1UL << 27),
-       BTRFS_MOUNT_DISCARD_ASYNC               = (1UL << 28),
-       BTRFS_MOUNT_IGNOREBADROOTS              = (1UL << 29),
-       BTRFS_MOUNT_IGNOREDATACSUMS             = (1UL << 30),
-       BTRFS_MOUNT_NODISCARD                   = (1UL << 31),
+       BTRFS_MOUNT_PANIC_ON_FATAL_ERROR        = (1UL << 19),
+       BTRFS_MOUNT_RESCAN_UUID_TREE            = (1UL << 20),
+       BTRFS_MOUNT_FRAGMENT_DATA               = (1UL << 21),
+       BTRFS_MOUNT_FRAGMENT_METADATA           = (1UL << 22),
+       BTRFS_MOUNT_FREE_SPACE_TREE             = (1UL << 23),
+       BTRFS_MOUNT_NOLOGREPLAY                 = (1UL << 24),
+       BTRFS_MOUNT_REF_VERIFY                  = (1UL << 25),
+       BTRFS_MOUNT_DISCARD_ASYNC               = (1UL << 26),
+       BTRFS_MOUNT_IGNOREBADROOTS              = (1UL << 27),
+       BTRFS_MOUNT_IGNOREDATACSUMS             = (1UL << 28),
+       BTRFS_MOUNT_NODISCARD                   = (1UL << 29),
 };
 
 /*
@@ -645,9 +643,6 @@ struct btrfs_fs_info {
 
        struct btrfs_discard_ctl discard_ctl;
 
-#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
-       u32 check_integrity_print_mask;
-#endif
        /* Is qgroup tracking in a consistent state? */
        u64 qgroup_flags;
 
index c748287..79d3037 100644 (file)
@@ -130,9 +130,6 @@ enum {
        Opt_inode_cache, Opt_noinode_cache,
 
        /* Debugging options */
-       Opt_check_integrity,
-       Opt_check_integrity_including_extent_data,
-       Opt_check_integrity_print_mask,
        Opt_enospc_debug, Opt_noenospc_debug,
 #ifdef CONFIG_BTRFS_DEBUG
        Opt_fragment_data, Opt_fragment_metadata, Opt_fragment_all,
@@ -201,9 +198,6 @@ static const match_table_t tokens = {
        {Opt_recovery, "recovery"},
 
        /* Debugging options */
-       {Opt_check_integrity, "check_int"},
-       {Opt_check_integrity_including_extent_data, "check_int_data"},
-       {Opt_check_integrity_print_mask, "check_int_print_mask=%u"},
        {Opt_enospc_debug, "enospc_debug"},
        {Opt_noenospc_debug, "noenospc_debug"},
 #ifdef CONFIG_BTRFS_DEBUG
@@ -708,44 +702,6 @@ int btrfs_parse_options(struct btrfs_fs_info *info, char *options,
                case Opt_skip_balance:
                        btrfs_set_opt(info->mount_opt, SKIP_BALANCE);
                        break;
-#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
-               case Opt_check_integrity_including_extent_data:
-                       btrfs_warn(info,
-       "integrity checker is deprecated and will be removed in 6.7");
-                       btrfs_info(info,
-                                  "enabling check integrity including extent data");
-                       btrfs_set_opt(info->mount_opt, CHECK_INTEGRITY_DATA);
-                       btrfs_set_opt(info->mount_opt, CHECK_INTEGRITY);
-                       break;
-               case Opt_check_integrity:
-                       btrfs_warn(info,
-       "integrity checker is deprecated and will be removed in 6.7");
-                       btrfs_info(info, "enabling check integrity");
-                       btrfs_set_opt(info->mount_opt, CHECK_INTEGRITY);
-                       break;
-               case Opt_check_integrity_print_mask:
-                       ret = match_int(&args[0], &intarg);
-                       if (ret) {
-                               btrfs_err(info,
-                               "unrecognized check_integrity_print_mask value %s",
-                                       args[0].from);
-                               goto out;
-                       }
-                       info->check_integrity_print_mask = intarg;
-                       btrfs_warn(info,
-       "integrity checker is deprecated and will be removed in 6.7");
-                       btrfs_info(info, "check_integrity_print_mask 0x%x",
-                                  info->check_integrity_print_mask);
-                       break;
-#else
-               case Opt_check_integrity_including_extent_data:
-               case Opt_check_integrity:
-               case Opt_check_integrity_print_mask:
-                       btrfs_err(info,
-                                 "support for check_integrity* not compiled in!");
-                       ret = -EINVAL;
-                       goto out;
-#endif
                case Opt_fatal_errors:
                        if (strcmp(args[0].from, "panic") == 0) {
                                btrfs_set_opt(info->mount_opt,
@@ -1306,15 +1262,6 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
                seq_puts(seq, ",autodefrag");
        if (btrfs_test_opt(info, SKIP_BALANCE))
                seq_puts(seq, ",skip_balance");
-#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
-       if (btrfs_test_opt(info, CHECK_INTEGRITY_DATA))
-               seq_puts(seq, ",check_int_data");
-       else if (btrfs_test_opt(info, CHECK_INTEGRITY))
-               seq_puts(seq, ",check_int");
-       if (info->check_integrity_print_mask)
-               seq_printf(seq, ",check_int_print_mask=%d",
-                               info->check_integrity_print_mask);
-#endif
        if (info->metadata_ratio)
                seq_printf(seq, ",metadata_ratio=%u", info->metadata_ratio);
        if (btrfs_test_opt(info, PANIC_ON_FATAL_ERROR))
@@ -2405,9 +2352,6 @@ static int __init btrfs_print_mod_info(void)
 #ifdef CONFIG_BTRFS_ASSERT
                        ", assert=on"
 #endif
-#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
-                       ", integrity-checker=on"
-#endif
 #ifdef CONFIG_BTRFS_FS_REF_VERIFY
                        ", ref-verify=on"
 #endif