btrfs: check-integrity: remove CONFIG_BTRFS_FS_CHECK_INTEGRITY option
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>
This commit is contained in:
parent
fb2a836da4
commit
732fab95ab
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user