Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -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.
	Default is 1MB.

  noautodefrag(*)
  autodefrag
	Detect small random writes into files and queue them up for the
	defrag process.  Works best for small files; Not well suited for
	large database workloads.
	Disable/enable auto defragmentation.
	Auto defragmentation detects small random writes into files and queue
	them up for the defrag process.  Works best for small files;
	Not well suited for large database workloads.

  check_int
  check_int_data
+7 −1
Original line number Diff line number Diff line
@@ -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_commit_interval, Opt_barrier, Opt_nodefrag,
	Opt_err,
};

@@ -357,6 +357,7 @@ static match_table_t tokens = {
	{Opt_enospc_debug, "enospc_debug"},
	{Opt_subvolrootid, "subvolrootid=%d"},
	{Opt_defrag, "autodefrag"},
	{Opt_nodefrag, "noautodefrag"},
	{Opt_inode_cache, "inode_cache"},
	{Opt_no_space_cache, "nospace_cache"},
	{Opt_recovery, "recovery"},
@@ -602,6 +603,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
			btrfs_info(root->fs_info, "enabling auto defrag");
			btrfs_set_opt(info->mount_opt, AUTO_DEFRAG);
			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:
			btrfs_info(root->fs_info, "enabling auto recovery");
			btrfs_set_opt(info->mount_opt, RECOVERY);