mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 23:23:03 +00:00
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
|
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
|
config BTRFS_FS_RUN_SANITY_TESTS
|
||||||
bool "Btrfs will run sanity tests upon loading"
|
bool "Btrfs will run sanity tests upon loading"
|
||||||
depends on BTRFS_FS
|
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);
|
spin_lock_init(&fs_info->ordered_root_lock);
|
||||||
|
|
||||||
btrfs_init_scrub(fs_info);
|
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_balance(fs_info);
|
||||||
btrfs_init_async_reclaim_work(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;
|
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,
|
bio_init(bio, device->bdev, NULL, 0,
|
||||||
REQ_OP_WRITE | REQ_SYNC | REQ_PREFLUSH);
|
REQ_OP_WRITE | REQ_SYNC | REQ_PREFLUSH);
|
||||||
bio->bi_end_io = btrfs_end_empty_barrier;
|
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",
|
WARN(1, KERN_CRIT "btrfs transid mismatch buffer %llu, found %llu running %llu\n",
|
||||||
buf->start, transid, fs_info->generation);
|
buf->start, transid, fs_info->generation);
|
||||||
set_extent_buffer_dirty(buf);
|
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,
|
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_AUTO_DEFRAG = (1UL << 16),
|
||||||
BTRFS_MOUNT_USEBACKUPROOT = (1UL << 17),
|
BTRFS_MOUNT_USEBACKUPROOT = (1UL << 17),
|
||||||
BTRFS_MOUNT_SKIP_BALANCE = (1UL << 18),
|
BTRFS_MOUNT_SKIP_BALANCE = (1UL << 18),
|
||||||
BTRFS_MOUNT_CHECK_INTEGRITY = (1UL << 19),
|
BTRFS_MOUNT_PANIC_ON_FATAL_ERROR = (1UL << 19),
|
||||||
BTRFS_MOUNT_CHECK_INTEGRITY_DATA = (1UL << 20),
|
BTRFS_MOUNT_RESCAN_UUID_TREE = (1UL << 20),
|
||||||
BTRFS_MOUNT_PANIC_ON_FATAL_ERROR = (1UL << 21),
|
BTRFS_MOUNT_FRAGMENT_DATA = (1UL << 21),
|
||||||
BTRFS_MOUNT_RESCAN_UUID_TREE = (1UL << 22),
|
BTRFS_MOUNT_FRAGMENT_METADATA = (1UL << 22),
|
||||||
BTRFS_MOUNT_FRAGMENT_DATA = (1UL << 23),
|
BTRFS_MOUNT_FREE_SPACE_TREE = (1UL << 23),
|
||||||
BTRFS_MOUNT_FRAGMENT_METADATA = (1UL << 24),
|
BTRFS_MOUNT_NOLOGREPLAY = (1UL << 24),
|
||||||
BTRFS_MOUNT_FREE_SPACE_TREE = (1UL << 25),
|
BTRFS_MOUNT_REF_VERIFY = (1UL << 25),
|
||||||
BTRFS_MOUNT_NOLOGREPLAY = (1UL << 26),
|
BTRFS_MOUNT_DISCARD_ASYNC = (1UL << 26),
|
||||||
BTRFS_MOUNT_REF_VERIFY = (1UL << 27),
|
BTRFS_MOUNT_IGNOREBADROOTS = (1UL << 27),
|
||||||
BTRFS_MOUNT_DISCARD_ASYNC = (1UL << 28),
|
BTRFS_MOUNT_IGNOREDATACSUMS = (1UL << 28),
|
||||||
BTRFS_MOUNT_IGNOREBADROOTS = (1UL << 29),
|
BTRFS_MOUNT_NODISCARD = (1UL << 29),
|
||||||
BTRFS_MOUNT_IGNOREDATACSUMS = (1UL << 30),
|
|
||||||
BTRFS_MOUNT_NODISCARD = (1UL << 31),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -645,9 +643,6 @@ struct btrfs_fs_info {
|
|||||||
|
|
||||||
struct btrfs_discard_ctl discard_ctl;
|
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? */
|
/* Is qgroup tracking in a consistent state? */
|
||||||
u64 qgroup_flags;
|
u64 qgroup_flags;
|
||||||
|
|
||||||
|
@ -130,9 +130,6 @@ enum {
|
|||||||
Opt_inode_cache, Opt_noinode_cache,
|
Opt_inode_cache, Opt_noinode_cache,
|
||||||
|
|
||||||
/* Debugging options */
|
/* Debugging options */
|
||||||
Opt_check_integrity,
|
|
||||||
Opt_check_integrity_including_extent_data,
|
|
||||||
Opt_check_integrity_print_mask,
|
|
||||||
Opt_enospc_debug, Opt_noenospc_debug,
|
Opt_enospc_debug, Opt_noenospc_debug,
|
||||||
#ifdef CONFIG_BTRFS_DEBUG
|
#ifdef CONFIG_BTRFS_DEBUG
|
||||||
Opt_fragment_data, Opt_fragment_metadata, Opt_fragment_all,
|
Opt_fragment_data, Opt_fragment_metadata, Opt_fragment_all,
|
||||||
@ -201,9 +198,6 @@ static const match_table_t tokens = {
|
|||||||
{Opt_recovery, "recovery"},
|
{Opt_recovery, "recovery"},
|
||||||
|
|
||||||
/* Debugging options */
|
/* 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_enospc_debug, "enospc_debug"},
|
||||||
{Opt_noenospc_debug, "noenospc_debug"},
|
{Opt_noenospc_debug, "noenospc_debug"},
|
||||||
#ifdef CONFIG_BTRFS_DEBUG
|
#ifdef CONFIG_BTRFS_DEBUG
|
||||||
@ -708,44 +702,6 @@ int btrfs_parse_options(struct btrfs_fs_info *info, char *options,
|
|||||||
case Opt_skip_balance:
|
case Opt_skip_balance:
|
||||||
btrfs_set_opt(info->mount_opt, SKIP_BALANCE);
|
btrfs_set_opt(info->mount_opt, SKIP_BALANCE);
|
||||||
break;
|
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:
|
case Opt_fatal_errors:
|
||||||
if (strcmp(args[0].from, "panic") == 0) {
|
if (strcmp(args[0].from, "panic") == 0) {
|
||||||
btrfs_set_opt(info->mount_opt,
|
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");
|
seq_puts(seq, ",autodefrag");
|
||||||
if (btrfs_test_opt(info, SKIP_BALANCE))
|
if (btrfs_test_opt(info, SKIP_BALANCE))
|
||||||
seq_puts(seq, ",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)
|
if (info->metadata_ratio)
|
||||||
seq_printf(seq, ",metadata_ratio=%u", info->metadata_ratio);
|
seq_printf(seq, ",metadata_ratio=%u", info->metadata_ratio);
|
||||||
if (btrfs_test_opt(info, PANIC_ON_FATAL_ERROR))
|
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
|
#ifdef CONFIG_BTRFS_ASSERT
|
||||||
", assert=on"
|
", assert=on"
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
|
|
||||||
", integrity-checker=on"
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_BTRFS_FS_REF_VERIFY
|
#ifdef CONFIG_BTRFS_FS_REF_VERIFY
|
||||||
", ref-verify=on"
|
", ref-verify=on"
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user