* [PATCH v3 0/9] btrfs: Add missing pairing mount options.
@ 2014-01-06 1:58 Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 1/9] btrfs: Add "barrier" option to support "-o remount,barrier" Qu Wenruo
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
Some options should be paired to support triggering different functions
when remounting.
This patchset add these missing pairing mount options except noinode_cache,
which may need more investigation to ensure the safety and will be sent as
independent patch.
Qu Wenruo (9):
btrfs: Add "barrier" option to support "-o remount,barrier"
btrfs: Add noautodefrag mount option.
btrfs: Add nodiscard mount option.
btrfs: Add noenospc_debug mount option.
btrfs: Add noflushoncommit mount option.
btrfs: Add acl mount option.
btrfs: Add datacow mount option.
btrfs: Add datasum mount option.
btrfs: Add treelog mount option.
Documentation/filesystems/btrfs.txt | 47 +++++++++++++++++++------------
fs/btrfs/super.c | 55 ++++++++++++++++++++++++++++++++++++-
2 files changed, 84 insertions(+), 18 deletions(-)
--
1.8.5.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/9] btrfs: Add "barrier" option to support "-o remount,barrier"
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
@ 2014-01-06 1:58 ` Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 2/9] btrfs: Add noautodefrag mount option Qu Wenruo
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
Btrfs can be remounted without barrier, but there is no "barrier" option
so nobody can remount btrfs back with barrier on. Only umount and
mount again can re-enable barrier.(Quite awkward)
Also the mount options in the document is also changed slightly for the
further pairing options changes.
Reported-by: Daniel Blueman <daniel@quora.org>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: Mike Fleetwood <mike.fleetwood@googlemail.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
---
Changelog:
v1: Add barrier option
v2: Document style change
v3: Small description change
---
Documentation/filesystems/btrfs.txt | 13 +++++++------
fs/btrfs/super.c | 8 +++++++-
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index 5dd282d..ce487a2 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -38,7 +38,7 @@ Mount Options
=============
When mounting a btrfs filesystem, the following option are accepted.
-Unless otherwise specified, all options default to off.
+Options with (*) are default options and will not show in the mount options.
alloc_start=<bytes>
Debugging option to force all block allocations above a certain
@@ -138,12 +138,13 @@ Unless otherwise specified, all options default to off.
Disable support for Posix Access Control Lists (ACLs). See the
acl(5) manual page for more information about ACLs.
+ barrier(*)
nobarrier
- Disables the use of block layer write barriers. Write barriers ensure
- that certain IOs make it through the device cache and are on persistent
- storage. If used on a device with a volatile (non-battery-backed)
- write-back cache, this option will lead to filesystem corruption on a
- system crash or power loss.
+ Enable/disable the use of block layer write barriers. Write barriers
+ ensure that certain IOs make it through the device cache and are on
+ persistent storage. If disabled on a device with a volatile
+ (non-battery-backed) write-back cache, nobarrier option will lead to
+ filesystem corruption on a system crash or power loss.
nodatacow
Disable data copy-on-write for newly created files. Implies nodatasum,
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index e9c13fb..fe9d8a6 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -323,7 +323,7 @@ enum {
Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
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_commit_interval, Opt_barrier,
Opt_err,
};
@@ -335,6 +335,7 @@ static match_table_t tokens = {
{Opt_nodatasum, "nodatasum"},
{Opt_nodatacow, "nodatacow"},
{Opt_nobarrier, "nobarrier"},
+ {Opt_barrier, "barrier"},
{Opt_max_inline, "max_inline=%s"},
{Opt_alloc_start, "alloc_start=%s"},
{Opt_thread_pool, "thread_pool=%d"},
@@ -494,6 +495,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
btrfs_clear_opt(info->mount_opt, SSD);
btrfs_clear_opt(info->mount_opt, SSD_SPREAD);
break;
+ case Opt_barrier:
+ if (btrfs_test_opt(root, NOBARRIER))
+ btrfs_info(root->fs_info, "turning on barriers");
+ btrfs_clear_opt(info->mount_opt, NOBARRIER);
+ break;
case Opt_nobarrier:
btrfs_info(root->fs_info, "turning off barriers");
btrfs_set_opt(info->mount_opt, NOBARRIER);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/9] btrfs: Add noautodefrag mount option.
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 1/9] btrfs: Add "barrier" option to support "-o remount,barrier" Qu Wenruo
@ 2014-01-06 1:58 ` Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 3/9] btrfs: Add nodiscard " Qu Wenruo
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
Btrfs has autodefrag mount option but no pairing noautodefrag option,
which makes it impossible to disable autodefrag without umount.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
---
Changelog:
v2: Add noautodefrag option
v3: None
---
Documentation/filesystems/btrfs.txt | 8 +++++---
fs/btrfs/super.c | 8 +++++++-
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index ce487a2..e87609a 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -46,10 +46,12 @@ Options with (*) are default options and will not show in the mount options.
bytes, optionally with a K, M, or G suffix, case insensitive.
Default is 1MB.
+ noautodefrag(*)
autodefrag
- Detect small random writes into files and queue them up for the
- defrag process. Works best for small files; Not well suited for
- large database workloads.
+ Disable/enable auto defragmentation.
+ Auto defragmentation detects small random writes into files and queue
+ them up for the defrag process. Works best for small files;
+ Not well suited for large database workloads.
check_int
check_int_data
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index fe9d8a6..c65f696 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -323,7 +323,7 @@ enum {
Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
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_commit_interval, Opt_barrier, Opt_nodefrag,
Opt_err,
};
@@ -357,6 +357,7 @@ static match_table_t tokens = {
{Opt_enospc_debug, "enospc_debug"},
{Opt_subvolrootid, "subvolrootid=%d"},
{Opt_defrag, "autodefrag"},
+ {Opt_nodefrag, "noautodefrag"},
{Opt_inode_cache, "inode_cache"},
{Opt_no_space_cache, "nospace_cache"},
{Opt_recovery, "recovery"},
@@ -602,6 +603,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
btrfs_info(root->fs_info, "enabling auto defrag");
btrfs_set_opt(info->mount_opt, AUTO_DEFRAG);
break;
+ case Opt_nodefrag:
+ if (btrfs_test_opt(root, AUTO_DEFRAG))
+ btrfs_info(root->fs_info, "disabling auto defrag");
+ btrfs_clear_opt(info->mount_opt, AUTO_DEFRAG);
+ break;
case Opt_recovery:
btrfs_info(root->fs_info, "enabling auto recovery");
btrfs_set_opt(info->mount_opt, RECOVERY);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 3/9] btrfs: Add nodiscard mount option.
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 1/9] btrfs: Add "barrier" option to support "-o remount,barrier" Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 2/9] btrfs: Add noautodefrag mount option Qu Wenruo
@ 2014-01-06 1:58 ` Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 4/9] btrfs: Add noenospc_debug " Qu Wenruo
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
Add nodiscard mount option to disable discard with remount option.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
---
Changelog:
v2: Add nodiscard option
v3: None
---
Documentation/filesystems/btrfs.txt | 7 +++++--
fs/btrfs/super.c | 6 +++++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index e87609a..7254cf5 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -98,9 +98,12 @@ Options with (*) are default options and will not show in the mount options.
can be avoided. Especially useful when trying to mount a multi-device
setup as root. May be specified multiple times for multiple devices.
+ nodiscard(*)
discard
- Issue frequent commands to let the block device reclaim space freed by
- the filesystem. This is useful for SSD devices, thinly provisioned
+ Disable/enable discard mount option.
+ Discard issues frequent commands to let the block device reclaim space
+ freed by the filesystem.
+ This is useful for SSD devices, thinly provisioned
LUNs and virtual machine images, but may have a significant
performance impact. (The fstrim command is also available to
initiate batch trims from userspace).
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index c65f696..8731ee6 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -323,7 +323,7 @@ enum {
Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
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_commit_interval, Opt_barrier, Opt_nodefrag, Opt_nodiscard,
Opt_err,
};
@@ -351,6 +351,7 @@ static match_table_t tokens = {
{Opt_flushoncommit, "flushoncommit"},
{Opt_ratio, "metadata_ratio=%d"},
{Opt_discard, "discard"},
+ {Opt_nodiscard, "nodiscard"},
{Opt_space_cache, "space_cache"},
{Opt_clear_cache, "clear_cache"},
{Opt_user_subvol_rm_allowed, "user_subvol_rm_allowed"},
@@ -575,6 +576,9 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
case Opt_discard:
btrfs_set_opt(info->mount_opt, DISCARD);
break;
+ case Opt_nodiscard:
+ btrfs_clear_opt(info->mount_opt, DISCARD);
+ break;
case Opt_space_cache:
btrfs_set_opt(info->mount_opt, SPACE_CACHE);
break;
--
1.8.5.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 4/9] btrfs: Add noenospc_debug mount option.
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
` (2 preceding siblings ...)
2014-01-06 1:58 ` [PATCH v3 3/9] btrfs: Add nodiscard " Qu Wenruo
@ 2014-01-06 1:58 ` Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 5/9] btrfs: Add noflushoncommit " Qu Wenruo
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
Add noenospc_debug mount option to disable ENOSPC debug with
remount option.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
---
Changelog:
v2: Add noenospc_debug option
v3: None
---
Documentation/filesystems/btrfs.txt | 3 ++-
fs/btrfs/super.c | 5 +++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index 7254cf5..13a7cac 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -108,8 +108,9 @@ Options with (*) are default options and will not show in the mount options.
performance impact. (The fstrim command is also available to
initiate batch trims from userspace).
+ noenospc_debug(*)
enospc_debug
- Debugging option to be more verbose in some ENOSPC conditions.
+ Disable/enable debugging option to be more verbose in some ENOSPC conditions.
fatal_errors=<action>
Action to take when encountering a fatal error:
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 8731ee6..acf3e7d 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -324,6 +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_err,
};
@@ -356,6 +357,7 @@ static match_table_t tokens = {
{Opt_clear_cache, "clear_cache"},
{Opt_user_subvol_rm_allowed, "user_subvol_rm_allowed"},
{Opt_enospc_debug, "enospc_debug"},
+ {Opt_noenospc_debug, "noenospc_debug"},
{Opt_subvolrootid, "subvolrootid=%d"},
{Opt_defrag, "autodefrag"},
{Opt_nodefrag, "noautodefrag"},
@@ -603,6 +605,9 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
case Opt_enospc_debug:
btrfs_set_opt(info->mount_opt, ENOSPC_DEBUG);
break;
+ case Opt_noenospc_debug:
+ btrfs_clear_opt(info->mount_opt, ENOSPC_DEBUG);
+ break;
case Opt_defrag:
btrfs_info(root->fs_info, "enabling auto defrag");
btrfs_set_opt(info->mount_opt, AUTO_DEFRAG);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 5/9] btrfs: Add noflushoncommit mount option.
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
` (3 preceding siblings ...)
2014-01-06 1:58 ` [PATCH v3 4/9] btrfs: Add noenospc_debug " Qu Wenruo
@ 2014-01-06 1:58 ` Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 6/9] btrfs: Add acl " Qu Wenruo
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
Add noflushoncommit mount option to disable flush on commit with
remount option.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
---
Changelog:
v2: Add noflushoncommit option
v3: None
---
Documentation/filesystems/btrfs.txt | 1 +
fs/btrfs/super.c | 8 +++++++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index 13a7cac..303b49c 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -117,6 +117,7 @@ Options with (*) are default options and will not show in the mount options.
"bug" - BUG() on a fatal error. This is the default.
"panic" - panic() on a fatal error.
+ noflushoncommit(*)
flushoncommit
The 'flushoncommit' mount option forces any data dirtied by a write in a
prior transaction to commit as part of the current commit. This makes
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index acf3e7d..b2c752e 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -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_noenospc_debug, Opt_noflushoncommit,
Opt_err,
};
@@ -350,6 +350,7 @@ static match_table_t tokens = {
{Opt_noacl, "noacl"},
{Opt_notreelog, "notreelog"},
{Opt_flushoncommit, "flushoncommit"},
+ {Opt_noflushoncommit, "noflushoncommit"},
{Opt_ratio, "metadata_ratio=%d"},
{Opt_discard, "discard"},
{Opt_nodiscard, "nodiscard"},
@@ -562,6 +563,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
btrfs_info(root->fs_info, "turning on flush-on-commit");
btrfs_set_opt(info->mount_opt, FLUSHONCOMMIT);
break;
+ case Opt_noflushoncommit:
+ if (btrfs_test_opt(root, FLUSHONCOMMIT))
+ btrfs_info(root->fs_info, "turning off flush-on-commit");
+ btrfs_clear_opt(info->mount_opt, FLUSHONCOMMIT);
+ break;
case Opt_ratio:
ret = match_int(&args[0], &intarg);
if (ret) {
--
1.8.5.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 6/9] btrfs: Add acl mount option.
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
` (4 preceding siblings ...)
2014-01-06 1:58 ` [PATCH v3 5/9] btrfs: Add noflushoncommit " Qu Wenruo
@ 2014-01-06 1:58 ` Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 7/9] btrfs: Add datacow " Qu Wenruo
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
Add acl mount option to enable acl with remount option.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
---
Changelog:
v2: add acl option
v3: None
---
Documentation/filesystems/btrfs.txt | 3 ++-
fs/btrfs/super.c | 6 +++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index 303b49c..79c08f3 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -141,8 +141,9 @@ Options with (*) are default options and will not show in the mount options.
Specify that 1 metadata chunk should be allocated after every <value>
data chunks. Off by default.
+ acl(*)
noacl
- Disable support for Posix Access Control Lists (ACLs). See the
+ Enable/disable support for Posix Access Control Lists (ACLs). See the
acl(5) manual page for more information about ACLs.
barrier(*)
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index b2c752e..3d743cf 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -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_noenospc_debug, Opt_noflushoncommit, Opt_acl,
Opt_err,
};
@@ -347,6 +347,7 @@ static match_table_t tokens = {
{Opt_ssd, "ssd"},
{Opt_ssd_spread, "ssd_spread"},
{Opt_nossd, "nossd"},
+ {Opt_acl, "acl"},
{Opt_noacl, "noacl"},
{Opt_notreelog, "notreelog"},
{Opt_flushoncommit, "flushoncommit"},
@@ -552,6 +553,9 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
goto out;
}
break;
+ case Opt_acl:
+ root->fs_info->sb->s_flags |= MS_POSIXACL;
+ break;
case Opt_noacl:
root->fs_info->sb->s_flags &= ~MS_POSIXACL;
break;
--
1.8.5.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 7/9] btrfs: Add datacow mount option.
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
` (5 preceding siblings ...)
2014-01-06 1:58 ` [PATCH v3 6/9] btrfs: Add acl " Qu Wenruo
@ 2014-01-06 1:58 ` Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 8/9] btrfs: Add datasum " Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 9/9] btrfs: Add treelog " Qu Wenruo
8 siblings, 0 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
Add datacow mount option to enable copy-on-write with
remount option.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
---
Changelog:
v2: add datacow mount option
v3: None
---
Documentation/filesystems/btrfs.txt | 5 +++--
fs/btrfs/super.c | 8 +++++++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index 79c08f3..bbd1f0f 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -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.
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 3d743cf..1bf9202 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -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;
--
1.8.5.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 8/9] btrfs: Add datasum mount option.
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
` (6 preceding siblings ...)
2014-01-06 1:58 ` [PATCH v3 7/9] btrfs: Add datacow " Qu Wenruo
@ 2014-01-06 1:58 ` Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 9/9] btrfs: Add treelog " Qu Wenruo
8 siblings, 0 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
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>
---
Changelog:
v2: Add datasum option
v3: None
---
Documentation/filesystems/btrfs.txt | 4 +++-
fs/btrfs/super.c | 10 ++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index bbd1f0f..e05c6ae 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -159,8 +159,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 1bf9202..fa74252 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -325,6 +325,7 @@ enum {
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_datacow,
+ Opt_datasum,
Opt_err,
};
@@ -334,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"},
@@ -434,6 +436,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
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 9/9] btrfs: Add treelog mount option.
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
` (7 preceding siblings ...)
2014-01-06 1:58 ` [PATCH v3 8/9] btrfs: Add datasum " Qu Wenruo
@ 2014-01-06 1:58 ` Qu Wenruo
8 siblings, 0 replies; 10+ messages in thread
From: Qu Wenruo @ 2014-01-06 1:58 UTC (permalink / raw)
To: linux-btrfs
Add treelog mount option to enable tree log with
remount option.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
---
Changelog:
v2: Add treelog option
v3: None
---
Documentation/filesystems/btrfs.txt | 3 ++-
fs/btrfs/super.c | 8 +++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index e05c6ae..d11cc2f 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -164,8 +164,9 @@ Options with (*) are default options and will not show in the mount options.
Enable/disable data checksumming for newly created files.
Datasum implies datacow.
+ treelog(*)
notreelog
- Disable the tree logging used for fsync and O_SYNC writes.
+ Enable/disable the tree logging used for fsync and O_SYNC writes.
recovery
Enable autorecovery attempts if a bad tree root is found at mount time.
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index fa74252..d353b9e 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_nodiscard,
Opt_noenospc_debug, Opt_noflushoncommit, Opt_acl, Opt_datacow,
- Opt_datasum,
+ Opt_datasum, Opt_treelog,
Opt_err,
};
@@ -353,6 +353,7 @@ static match_table_t tokens = {
{Opt_acl, "acl"},
{Opt_noacl, "noacl"},
{Opt_notreelog, "notreelog"},
+ {Opt_treelog, "treelog"},
{Opt_flushoncommit, "flushoncommit"},
{Opt_noflushoncommit, "noflushoncommit"},
{Opt_ratio, "metadata_ratio=%d"},
@@ -579,6 +580,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
btrfs_info(root->fs_info, "disabling tree log");
btrfs_set_opt(info->mount_opt, NOTREELOG);
break;
+ case Opt_treelog:
+ if (btrfs_test_opt(root, NOTREELOG))
+ btrfs_info(root->fs_info, "enabling tree log");
+ btrfs_clear_opt(info->mount_opt, NOTREELOG);
+ break;
case Opt_flushoncommit:
btrfs_info(root->fs_info, "turning on flush-on-commit");
btrfs_set_opt(info->mount_opt, FLUSHONCOMMIT);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-01-06 1:57 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-06 1:58 [PATCH v3 0/9] btrfs: Add missing pairing mount options Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 1/9] btrfs: Add "barrier" option to support "-o remount,barrier" Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 2/9] btrfs: Add noautodefrag mount option Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 3/9] btrfs: Add nodiscard " Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 4/9] btrfs: Add noenospc_debug " Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 5/9] btrfs: Add noflushoncommit " Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 6/9] btrfs: Add acl " Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 7/9] btrfs: Add datacow " Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 8/9] btrfs: Add datasum " Qu Wenruo
2014-01-06 1:58 ` [PATCH v3 9/9] btrfs: Add treelog " Qu Wenruo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).