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

btrfs: Add datacow mount option.

Add datacow mount option to enable copy-on-write 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 bd0330ad
...@@ -154,9 +154,10 @@ Options with (*) are default options and will not show in the mount options. ...@@ -154,9 +154,10 @@ Options with (*) are default options and will not show in the mount options.
(non-battery-backed) write-back cache, nobarrier option will lead to (non-battery-backed) write-back cache, nobarrier option will lead to
filesystem corruption on a system crash or power loss. filesystem corruption on a system crash or power loss.
datacow(*)
nodatacow nodatacow
Disable data copy-on-write for newly created files. Implies nodatasum, Enable/disable data copy-on-write for newly created files.
and disables all compression. Nodatacow implies nodatasum, and disables all compression.
nodatasum nodatasum
Disable data checksumming for newly created files. Disable data checksumming for newly created files.
......
...@@ -324,7 +324,7 @@ enum { ...@@ -324,7 +324,7 @@ enum {
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_nodiscard, Opt_commit_interval, Opt_barrier, Opt_nodefrag, Opt_nodiscard,
Opt_noenospc_debug, Opt_noflushoncommit, Opt_acl, Opt_noenospc_debug, Opt_noflushoncommit, Opt_acl, Opt_datacow,
Opt_err, Opt_err,
}; };
...@@ -335,6 +335,7 @@ static match_table_t tokens = { ...@@ -335,6 +335,7 @@ static match_table_t tokens = {
{Opt_device, "device=%s"}, {Opt_device, "device=%s"},
{Opt_nodatasum, "nodatasum"}, {Opt_nodatasum, "nodatasum"},
{Opt_nodatacow, "nodatacow"}, {Opt_nodatacow, "nodatacow"},
{Opt_datacow, "datacow"},
{Opt_nobarrier, "nobarrier"}, {Opt_nobarrier, "nobarrier"},
{Opt_barrier, "barrier"}, {Opt_barrier, "barrier"},
{Opt_max_inline, "max_inline=%s"}, {Opt_max_inline, "max_inline=%s"},
...@@ -446,6 +447,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) ...@@ -446,6 +447,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
btrfs_set_opt(info->mount_opt, NODATACOW); btrfs_set_opt(info->mount_opt, NODATACOW);
btrfs_set_opt(info->mount_opt, NODATASUM); btrfs_set_opt(info->mount_opt, NODATASUM);
break; break;
case Opt_datacow:
if (btrfs_test_opt(root, NODATACOW))
btrfs_info(root->fs_info, "setting datacow");
btrfs_clear_opt(info->mount_opt, NODATACOW);
break;
case Opt_compress_force: case Opt_compress_force:
case Opt_compress_force_type: case Opt_compress_force_type:
compress_force = true; compress_force = true;
......
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