Commit fc0ca9af authored by Qu Wenruo's avatar Qu Wenruo Committed by Chris Mason

btrfs: Add noautodefrag mount option.

Btrfs has autodefrag mount option but no pairing noautodefrag option,
which makes it impossible to disable autodefrag without umount.
Signed-off-by: default avatarQu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.cz>
Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent 842bef58
...@@ -46,10 +46,12 @@ Options with (*) are default options and will not show in the mount options. ...@@ -46,10 +46,12 @@ Options with (*) are default options and will not show in the mount options.
bytes, optionally with a K, M, or G suffix, case insensitive. bytes, optionally with a K, M, or G suffix, case insensitive.
Default is 1MB. Default is 1MB.
noautodefrag(*)
autodefrag autodefrag
Detect small random writes into files and queue them up for the Disable/enable auto defragmentation.
defrag process. Works best for small files; Not well suited for Auto defragmentation detects small random writes into files and queue
large database workloads. them up for the defrag process. Works best for small files;
Not well suited for large database workloads.
check_int check_int
check_int_data check_int_data
......
...@@ -323,7 +323,7 @@ enum { ...@@ -323,7 +323,7 @@ enum {
Opt_no_space_cache, Opt_recovery, Opt_skip_balance, Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
Opt_check_integrity, Opt_check_integrity_including_extent_data, Opt_check_integrity, Opt_check_integrity_including_extent_data,
Opt_check_integrity_print_mask, Opt_fatal_errors, Opt_rescan_uuid_tree, Opt_check_integrity_print_mask, Opt_fatal_errors, Opt_rescan_uuid_tree,
Opt_commit_interval, Opt_barrier, Opt_commit_interval, Opt_barrier, Opt_nodefrag,
Opt_err, Opt_err,
}; };
...@@ -357,6 +357,7 @@ static match_table_t tokens = { ...@@ -357,6 +357,7 @@ static match_table_t tokens = {
{Opt_enospc_debug, "enospc_debug"}, {Opt_enospc_debug, "enospc_debug"},
{Opt_subvolrootid, "subvolrootid=%d"}, {Opt_subvolrootid, "subvolrootid=%d"},
{Opt_defrag, "autodefrag"}, {Opt_defrag, "autodefrag"},
{Opt_nodefrag, "noautodefrag"},
{Opt_inode_cache, "inode_cache"}, {Opt_inode_cache, "inode_cache"},
{Opt_no_space_cache, "nospace_cache"}, {Opt_no_space_cache, "nospace_cache"},
{Opt_recovery, "recovery"}, {Opt_recovery, "recovery"},
...@@ -602,6 +603,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) ...@@ -602,6 +603,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
btrfs_info(root->fs_info, "enabling auto defrag"); btrfs_info(root->fs_info, "enabling auto defrag");
btrfs_set_opt(info->mount_opt, AUTO_DEFRAG); btrfs_set_opt(info->mount_opt, AUTO_DEFRAG);
break; break;
case Opt_nodefrag:
if (btrfs_test_opt(root, AUTO_DEFRAG))
btrfs_info(root->fs_info, "disabling auto defrag");
btrfs_clear_opt(info->mount_opt, AUTO_DEFRAG);
break;
case Opt_recovery: case Opt_recovery:
btrfs_info(root->fs_info, "enabling auto recovery"); btrfs_info(root->fs_info, "enabling auto recovery");
btrfs_set_opt(info->mount_opt, RECOVERY); btrfs_set_opt(info->mount_opt, RECOVERY);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment