Add nocheck_int mount option to disable integrity check with
remount option.
Signed-off-by: Qu Wenruo quwen...@cn.fujitsu.com
---
changelog:
v2: add nocheck_int mount option
---
Documentation/filesystems/btrfs.txt | 3 +++
fs/btrfs/super.c| 15 ++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/Documentation/filesystems/btrfs.txt
b/Documentation/filesystems/btrfs.txt
index 65e885f..aab54e9 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -53,6 +53,7 @@ Options with (*) are default options and will not show in the
mount options.
them up for the defrag process. Works best for small files;
Not well suited for large database workloads.
+ nocheck_int(*)
check_int
check_int_data
check_int_print_mask=value
@@ -70,6 +71,8 @@ Options with (*) are default options and will not show in the
mount options.
as defined in fs/btrfs/check-integrity.c, to control the integrity
checker module behavior.
+ nocheck_int disables all the debug options above.
+
See comments at the top of fs/btrfs/check-integrity.c for more info.
commit=seconds
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index c65f696..b408d05 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -323,7 +323,7 @@ enum {
Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
Opt_check_integrity, Opt_check_integrity_including_extent_data,
Opt_check_integrity_print_mask, Opt_fatal_errors, Opt_rescan_uuid_tree,
- Opt_commit_interval, Opt_barrier, Opt_nodefrag,
+ Opt_commit_interval, Opt_barrier, Opt_nodefrag, Opt_nocheck_integrity,
Opt_err,
};
@@ -363,6 +363,7 @@ static match_table_t tokens = {
{Opt_recovery, recovery},
{Opt_skip_balance, skip_balance},
{Opt_check_integrity, check_int},
+ {Opt_nocheck_integrity, nocheck_int},
{Opt_check_integrity_including_extent_data, check_int_data},
{Opt_check_integrity_print_mask, check_int_print_mask=%d},
{Opt_rescan_uuid_tree, rescan_uuid_tree},
@@ -616,6 +617,17 @@ int btrfs_parse_options(struct btrfs_root *root, char
*options)
btrfs_set_opt(info-mount_opt, SKIP_BALANCE);
break;
#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
+ case Opt_nocheck_integrity:
+ if (btrfs_test_opt(root, CHECK_INTEGRITY) ||
+ btrfs_test_opt(root,
+ CHECK_INTEGRITY_INCLUDING_EXTENT_DATA) ||
+ info-check_integrity_print_mask != 0)
+ btrfs_info(root-fs_info, disabling any
integrity check);
+ btrfs_clear_opt(info-mount_opt, CHECK_INTEGRITY);
+ btrfs_clear_opt(info-mount_opt,
+ CHECK_INTEGRITY_INCLUDING_EXTENT_DATA);
+ info-check_integrity_print_mask = 0;
+ break;
case Opt_check_integrity_including_extent_data:
btrfs_info(root-fs_info,
enabling check integrity including extent
data);
@@ -641,6 +653,7 @@ int btrfs_parse_options(struct btrfs_root *root, char
*options)
}
break;
#else
+ case Opt_nocheck_integrity:
case Opt_check_integrity_including_extent_data:
case Opt_check_integrity:
case Opt_check_integrity_print_mask:
--
1.8.5.2
--
To unsubscribe from this list: send the line unsubscribe linux-btrfs in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html