aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/super.c
diff options
context:
space:
mode:
authorQu Wenruo <quwenruo@cn.fujitsu.com>2014-01-05 20:58:26 -0500
committerChris Mason <clm@fb.com>2014-01-28 16:20:16 -0500
commitfc0ca9af180b91aad2fbf2fe3b16a12e1e05a760 (patch)
treec425161a10af5ea493cbcb2ee2a7010634689fce /fs/btrfs/super.c
parent842bef5891aaf13e2dede01d86397d810fde2dd8 (diff)
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: Qu Wenruo <quwenruo@cn.fujitsu.com> Reviewed-by: David Sterba <dsterba@suse.cz> Signed-off-by: Josef Bacik <jbacik@fb.com> Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r--fs/btrfs/super.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index b02d25a64b2e..44513f3fbdc1 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, 326 Opt_commit_interval, Opt_barrier, Opt_nodefrag,
327 Opt_err, 327 Opt_err,
328}; 328};
329 329
@@ -357,6 +357,7 @@ static match_table_t tokens = {
357 {Opt_enospc_debug, "enospc_debug"}, 357 {Opt_enospc_debug, "enospc_debug"},
358 {Opt_subvolrootid, "subvolrootid=%d"}, 358 {Opt_subvolrootid, "subvolrootid=%d"},
359 {Opt_defrag, "autodefrag"}, 359 {Opt_defrag, "autodefrag"},
360 {Opt_nodefrag, "noautodefrag"},
360 {Opt_inode_cache, "inode_cache"}, 361 {Opt_inode_cache, "inode_cache"},
361 {Opt_no_space_cache, "nospace_cache"}, 362 {Opt_no_space_cache, "nospace_cache"},
362 {Opt_recovery, "recovery"}, 363 {Opt_recovery, "recovery"},
@@ -602,6 +603,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
602 btrfs_info(root->fs_info, "enabling auto defrag"); 603 btrfs_info(root->fs_info, "enabling auto defrag");
603 btrfs_set_opt(info->mount_opt, AUTO_DEFRAG); 604 btrfs_set_opt(info->mount_opt, AUTO_DEFRAG);
604 break; 605 break;
606 case Opt_nodefrag:
607 if (btrfs_test_opt(root, AUTO_DEFRAG))
608 btrfs_info(root->fs_info, "disabling auto defrag");
609 btrfs_clear_opt(info->mount_opt, AUTO_DEFRAG);
610 break;
605 case Opt_recovery: 611 case Opt_recovery:
606 btrfs_info(root->fs_info, "enabling auto recovery"); 612 btrfs_info(root->fs_info, "enabling auto recovery");
607 btrfs_set_opt(info->mount_opt, RECOVERY); 613 btrfs_set_opt(info->mount_opt, RECOVERY);