Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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
	filesystem corruption on a system crash or power loss.

  datacow(*)
  nodatacow
	Disable data copy-on-write for newly created files.  Implies nodatasum,
	and disables all compression.
	Enable/disable data copy-on-write for newly created files.
	Nodatacow implies nodatasum, and disables all compression.

  nodatasum
	Disable data checksumming for newly created files.
+7 −1
Original line number Diff line number Diff line
@@ -324,7 +324,7 @@ enum {
	Opt_check_integrity, Opt_check_integrity_including_extent_data,
	Opt_check_integrity_print_mask, Opt_fatal_errors, Opt_rescan_uuid_tree,
	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,
};

@@ -335,6 +335,7 @@ static match_table_t tokens = {
	{Opt_device, "device=%s"},
	{Opt_nodatasum, "nodatasum"},
	{Opt_nodatacow, "nodatacow"},
	{Opt_datacow, "datacow"},
	{Opt_nobarrier, "nobarrier"},
	{Opt_barrier, "barrier"},
	{Opt_max_inline, "max_inline=%s"},
@@ -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, NODATASUM);
			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_type:
			compress_force = true;