diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2014-01-05 20:58:26 -0500 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-01-28 16:20:16 -0500 |
commit | fc0ca9af180b91aad2fbf2fe3b16a12e1e05a760 (patch) | |
tree | c425161a10af5ea493cbcb2ee2a7010634689fce /fs/btrfs/super.c | |
parent | 842bef5891aaf13e2dede01d86397d810fde2dd8 (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.c | 8 |
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); |