aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorQu Wenruo <quwenruo@cn.fujitsu.com>2014-01-05 20:58:32 -0500
committerChris Mason <clm@fb.com>2014-01-28 16:20:20 -0500
commitd399167d88ea53590d6c0850b2d5534cbd21da02 (patch)
treead340d5afe66275fc2d5c0c86998ba2a0a1d9ab6 /fs
parenta258af7a3e395a1d36190c81614dca0bcb5f6012 (diff)
btrfs: Add datasum mount option.
Add datasum mount option to enable checksum with remount option. 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')
-rw-r--r--fs/btrfs/super.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 6567865a2504..e84e6cb57526 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -325,6 +325,7 @@ enum {
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, Opt_nodiscard, 326 Opt_commit_interval, Opt_barrier, Opt_nodefrag, Opt_nodiscard,
327 Opt_noenospc_debug, Opt_noflushoncommit, Opt_acl, Opt_datacow, 327 Opt_noenospc_debug, Opt_noflushoncommit, Opt_acl, Opt_datacow,
328 Opt_datasum,
328 Opt_err, 329 Opt_err,
329}; 330};
330 331
@@ -334,6 +335,7 @@ static match_table_t tokens = {
334 {Opt_subvolid, "subvolid=%s"}, 335 {Opt_subvolid, "subvolid=%s"},
335 {Opt_device, "device=%s"}, 336 {Opt_device, "device=%s"},
336 {Opt_nodatasum, "nodatasum"}, 337 {Opt_nodatasum, "nodatasum"},
338 {Opt_datasum, "datasum"},
337 {Opt_nodatacow, "nodatacow"}, 339 {Opt_nodatacow, "nodatacow"},
338 {Opt_datacow, "datacow"}, 340 {Opt_datacow, "datacow"},
339 {Opt_nobarrier, "nobarrier"}, 341 {Opt_nobarrier, "nobarrier"},
@@ -434,6 +436,14 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
434 btrfs_info(root->fs_info, "setting nodatasum"); 436 btrfs_info(root->fs_info, "setting nodatasum");
435 btrfs_set_opt(info->mount_opt, NODATASUM); 437 btrfs_set_opt(info->mount_opt, NODATASUM);
436 break; 438 break;
439 case Opt_datasum:
440 if (btrfs_test_opt(root, NODATACOW))
441 btrfs_info(root->fs_info, "setting datasum, datacow enabled");
442 else
443 btrfs_info(root->fs_info, "setting datasum");
444 btrfs_clear_opt(info->mount_opt, NODATACOW);
445 btrfs_clear_opt(info->mount_opt, NODATASUM);
446 break;
437 case Opt_nodatacow: 447 case Opt_nodatacow:
438 if (!btrfs_test_opt(root, COMPRESS) || 448 if (!btrfs_test_opt(root, COMPRESS) ||
439 !btrfs_test_opt(root, FORCE_COMPRESS)) { 449 !btrfs_test_opt(root, FORCE_COMPRESS)) {