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

btrfs: Add nodiscard mount option.

Add nodiscard mount option to disable discard with remount option.
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 fc0ca9af
...@@ -98,9 +98,12 @@ Options with (*) are default options and will not show in the mount options. ...@@ -98,9 +98,12 @@ Options with (*) are default options and will not show in the mount options.
can be avoided. Especially useful when trying to mount a multi-device can be avoided. Especially useful when trying to mount a multi-device
setup as root. May be specified multiple times for multiple devices. setup as root. May be specified multiple times for multiple devices.
nodiscard(*)
discard discard
Issue frequent commands to let the block device reclaim space freed by Disable/enable discard mount option.
the filesystem. This is useful for SSD devices, thinly provisioned Discard issues frequent commands to let the block device reclaim space
freed by the filesystem.
This is useful for SSD devices, thinly provisioned
LUNs and virtual machine images, but may have a significant LUNs and virtual machine images, but may have a significant
performance impact. (The fstrim command is also available to performance impact. (The fstrim command is also available to
initiate batch trims from userspace). initiate batch trims from userspace).
......
...@@ -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_nodefrag, Opt_commit_interval, Opt_barrier, Opt_nodefrag, Opt_nodiscard,
Opt_err, Opt_err,
}; };
...@@ -351,6 +351,7 @@ static match_table_t tokens = { ...@@ -351,6 +351,7 @@ static match_table_t tokens = {
{Opt_flushoncommit, "flushoncommit"}, {Opt_flushoncommit, "flushoncommit"},
{Opt_ratio, "metadata_ratio=%d"}, {Opt_ratio, "metadata_ratio=%d"},
{Opt_discard, "discard"}, {Opt_discard, "discard"},
{Opt_nodiscard, "nodiscard"},
{Opt_space_cache, "space_cache"}, {Opt_space_cache, "space_cache"},
{Opt_clear_cache, "clear_cache"}, {Opt_clear_cache, "clear_cache"},
{Opt_user_subvol_rm_allowed, "user_subvol_rm_allowed"}, {Opt_user_subvol_rm_allowed, "user_subvol_rm_allowed"},
...@@ -575,6 +576,9 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) ...@@ -575,6 +576,9 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
case Opt_discard: case Opt_discard:
btrfs_set_opt(info->mount_opt, DISCARD); btrfs_set_opt(info->mount_opt, DISCARD);
break; break;
case Opt_nodiscard:
btrfs_clear_opt(info->mount_opt, DISCARD);
break;
case Opt_space_cache: case Opt_space_cache:
btrfs_set_opt(info->mount_opt, SPACE_CACHE); btrfs_set_opt(info->mount_opt, SPACE_CACHE);
break; break;
......
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