diff mbox

[1/5] btrfs: nodatasum drop compress

Message ID 541A9717.5000003@jp.fujitsu.com (mailing list archive)
State New, archived
Headers show

Commit Message

Satoru Takeuchi Sept. 18, 2014, 8:25 a.m. UTC
From: Naohiro Aota <naota@elisp.net>

We can enable both compress option and nodatasum option at the same time
with the following command.

-- 1.8.3.1 

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

===
$ sudo mount -o remount,compress,nodatasum /
$ mount | grep btrfs
/dev/vda2 on / type btrfs (rw,relatime,seclabel,nodatasum,compress=zlib,space_cache)
===

This behavior collides with Documentation/filesystems/btrfs.txt:

===
...
  If compression is enabled, nodatacow and nodatasum are disabled.
...
===

This patch drops the compress flags upon nodatasum flag.

Signed-off-by: Naohiro Aota <naota@elisp.net>
Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>
---
 fs/btrfs/super.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index c4124de..d1c5b6d 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -440,8 +440,15 @@  int btrfs_parse_options(struct btrfs_root *root, char *options)
 			 */
 			break;
 		case Opt_nodatasum:
-			btrfs_set_and_info(root, NODATASUM,
-					   "setting nodatasum");
+			if (!btrfs_test_opt(root, NODATASUM)) {
+				if (btrfs_test_opt(root, COMPRESS))
+					btrfs_info(root->fs_info, "setting nodatasum, compression disabled");
+				else
+					btrfs_info(root->fs_info, "setting nodatasum");
+			}
+			btrfs_clear_opt(info->mount_opt, COMPRESS);
+			btrfs_clear_opt(info->mount_opt, FORCE_COMPRESS);
+			btrfs_set_opt(info->mount_opt, NODATASUM);
 			break;
 		case Opt_datasum:
 			if (btrfs_test_opt(root, NODATASUM)) {