aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/filesystems/btrfs.txt7
-rw-r--r--fs/btrfs/super.c6
2 files changed, 10 insertions, 3 deletions
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index e87609a4e21c..7254cf501391 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -98,9 +98,12 @@ Options with (*) are default options and will not show in the mount options.
98 can be avoided. Especially useful when trying to mount a multi-device 98 can be avoided. Especially useful when trying to mount a multi-device
99 setup as root. May be specified multiple times for multiple devices. 99 setup as root. May be specified multiple times for multiple devices.
100 100
101 nodiscard(*)
101 discard 102 discard
102 Issue frequent commands to let the block device reclaim space freed by 103 Disable/enable discard mount option.
103 the filesystem. This is useful for SSD devices, thinly provisioned 104 Discard issues frequent commands to let the block device reclaim space
105 freed by the filesystem.
106 This is useful for SSD devices, thinly provisioned
104 LUNs and virtual machine images, but may have a significant 107 LUNs and virtual machine images, but may have a significant
105 performance impact. (The fstrim command is also available to 108 performance impact. (The fstrim command is also available to
106 initiate batch trims from userspace). 109 initiate batch trims from userspace).
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 44513f3fbdc1..e15377035dd5 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -323,7 +323,7 @@ enum {
323 Opt_no_space_cache, Opt_recovery, Opt_skip_balance, 323 Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
324 Opt_check_integrity, Opt_check_integrity_including_extent_data, 324 Opt_check_integrity, Opt_check_integrity_including_extent_data,
325 Opt_check_integrity_print_mask, Opt_fatal_errors, Opt_rescan_uuid_tree, 325 Opt_check_integrity_print_mask, Opt_fatal_errors, Opt_rescan_uuid_tree,
326 Opt_commit_interval, Opt_barrier, Opt_nodefrag, 326 Opt_commit_interval, Opt_barrier, Opt_nodefrag, Opt_nodiscard,
327 Opt_err, 327 Opt_err,
328}; 328};
329 329
@@ -351,6 +351,7 @@ static match_table_t tokens = {
351 {Opt_flushoncommit, "flushoncommit"}, 351 {Opt_flushoncommit, "flushoncommit"},
352 {Opt_ratio, "metadata_ratio=%d"}, 352 {Opt_ratio, "metadata_ratio=%d"},
353 {Opt_discard, "discard"}, 353 {Opt_discard, "discard"},
354 {Opt_nodiscard, "nodiscard"},
354 {Opt_space_cache, "space_cache"}, 355 {Opt_space_cache, "space_cache"},
355 {Opt_clear_cache, "clear_cache"}, 356 {Opt_clear_cache, "clear_cache"},
356 {Opt_user_subvol_rm_allowed, "user_subvol_rm_allowed"}, 357 {Opt_user_subvol_rm_allowed, "user_subvol_rm_allowed"},
@@ -575,6 +576,9 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
575 case Opt_discard: 576 case Opt_discard:
576 btrfs_set_opt(info->mount_opt, DISCARD); 577 btrfs_set_opt(info->mount_opt, DISCARD);
577 break; 578 break;
579 case Opt_nodiscard:
580 btrfs_clear_opt(info->mount_opt, DISCARD);
581 break;
578 case Opt_space_cache: 582 case Opt_space_cache:
579 btrfs_set_opt(info->mount_opt, SPACE_CACHE); 583 btrfs_set_opt(info->mount_opt, SPACE_CACHE);
580 break; 584 break;