From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cn.fujitsu.com ([222.73.24.84]:47985 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1750769AbaACGJv (ORCPT ); Fri, 3 Jan 2014 01:09:51 -0500 Received: from fnstmail02.fnst.cn.fujitsu.com (tang.cn.fujitsu.com [127.0.0.1]) by tang.cn.fujitsu.com (8.14.3/8.13.1) with ESMTP id s0369f9R003655 for ; Fri, 3 Jan 2014 14:09:48 +0800 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH v2 10/11] btrfs: Add datasum mount option. Date: Fri, 3 Jan 2014 14:10:33 +0800 Message-Id: <1388729434-19799-11-git-send-email-quwenruo@cn.fujitsu.com> In-Reply-To: <1388729434-19799-1-git-send-email-quwenruo@cn.fujitsu.com> References: <1388729434-19799-1-git-send-email-quwenruo@cn.fujitsu.com> Sender: linux-btrfs-owner@vger.kernel.org List-ID: Add datasum mount option to enable checksum with remount option. Signed-off-by: Qu Wenruo --- changelog: v2: Add datasum mount option. --- Documentation/filesystems/btrfs.txt | 4 +++- fs/btrfs/super.c | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt index 48c1833..480eeda 100644 --- a/Documentation/filesystems/btrfs.txt +++ b/Documentation/filesystems/btrfs.txt @@ -164,8 +164,10 @@ Options with (*) are default options and will not show in the mount options. Enable/disable data copy-on-write for newly created files. Nodatacow implies nodatasum, and disables all compression. + datasum(*) nodatasum - Disable data checksumming for newly created files. + Enable/disable data checksumming for newly created files. + Datasum implies datacow. notreelog Disable the tree logging used for fsync and O_SYNC writes. diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index cb4c90d..01ae900 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -325,7 +325,7 @@ enum { Opt_check_integrity_print_mask, Opt_fatal_errors, Opt_rescan_uuid_tree, Opt_commit_interval, Opt_barrier, Opt_nodefrag, Opt_nocheck_integrity, Opt_nodiscard, Opt_noenospc_debug, Opt_noflushoncommit, - Opt_noinode_cache, Opt_acl, Opt_datacow, + Opt_noinode_cache, Opt_acl, Opt_datacow, Opt_datasum, Opt_err, }; @@ -335,6 +335,7 @@ static match_table_t tokens = { {Opt_subvolid, "subvolid=%s"}, {Opt_device, "device=%s"}, {Opt_nodatasum, "nodatasum"}, + {Opt_datasum, "datasum"}, {Opt_nodatacow, "nodatacow"}, {Opt_datacow, "datacow"}, {Opt_nobarrier, "nobarrier"}, @@ -437,6 +438,14 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) btrfs_info(root->fs_info, "setting nodatasum"); btrfs_set_opt(info->mount_opt, NODATASUM); break; + case Opt_datasum: + if (btrfs_test_opt(root, NODATACOW)) + btrfs_info(root->fs_info, "setting datasum, datacow enabled"); + else + btrfs_info(root->fs_info, "setting datasum"); + btrfs_clear_opt(info->mount_opt, NODATACOW); + btrfs_clear_opt(info->mount_opt, NODATASUM); + break; case Opt_nodatacow: if (!btrfs_test_opt(root, COMPRESS) || !btrfs_test_opt(root, FORCE_COMPRESS)) { -- 1.8.5.2