Message ID | 1388040310-25092-1-git-send-email-quwenruo@cn.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Dec 26, 2013 at 02:45:10PM +0800, Qu Wenruo wrote: > 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) Ok for adding the mount option. > Reported-by: Daniel Blueman <daniel@quora.org> > Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> > --- > Documentation/filesystems/btrfs.txt | 6 ++++++ > fs/btrfs/super.c | 8 +++++++- > 2 files changed, 13 insertions(+), 1 deletion(-) > > diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt > index 5dd282d..f6f71d6 100644 > --- a/Documentation/filesystems/btrfs.txt > +++ b/Documentation/filesystems/btrfs.txt > @@ -51,6 +51,12 @@ Unless otherwise specified, all options default to off. > defrag process. Works best for small files; Not well suited for > large database workloads. > > + barrier > + Enable the use of block layer write barriers. Write barriers ensure > + that certain IOs make it through the device cache and are on persistent > + storage. > + Barriers are enabled by default. There's the 'nobarrier' option already, I think it's better to keep the pairing option documentation at one place and mark the default one with (*). Related to that, there should imho be a pairing option for every mount option where it makes sense, so all the combinations work through remount. The defaults do not need to be listed via btrfs_show_options, ie. keep the output same as it is now. david -- 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
On Thu, 2 Jan 2014 16:41:03 +0100, David Sterba wrote: > On Thu, Dec 26, 2013 at 02:45:10PM +0800, Qu Wenruo wrote: >> 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) > Ok for adding the mount option. > >> Reported-by: Daniel Blueman <daniel@quora.org> >> Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> >> --- >> Documentation/filesystems/btrfs.txt | 6 ++++++ >> fs/btrfs/super.c | 8 +++++++- >> 2 files changed, 13 insertions(+), 1 deletion(-) >> >> diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt >> index 5dd282d..f6f71d6 100644 >> --- a/Documentation/filesystems/btrfs.txt >> +++ b/Documentation/filesystems/btrfs.txt >> @@ -51,6 +51,12 @@ Unless otherwise specified, all options default to off. >> defrag process. Works best for small files; Not well suited for >> large database workloads. >> >> + barrier >> + Enable the use of block layer write barriers. Write barriers ensure >> + that certain IOs make it through the device cache and are on persistent >> + storage. >> + Barriers are enabled by default. > There's the 'nobarrier' option already, I think it's better to keep the > pairing option documentation at one place and mark the default one with (*). > > Related to that, there should imho be a pairing option for every mount > option where it makes sense, so all the combinations work through > remount. > > The defaults do not need to be listed via btrfs_show_options, ie. keep > the output same as it is now. > > > david > Thanks for pointing out these problem. This makes sense.Like space_cache and nospace_cache follows the way you mentioned, but most other options just followed the alphabet order, and a lot of pairing is missing. I'll try to add all the missingpairing and unify mount options in the document. Qu -- 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 --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt index 5dd282d..f6f71d6 100644 --- a/Documentation/filesystems/btrfs.txt +++ b/Documentation/filesystems/btrfs.txt @@ -51,6 +51,12 @@ Unless otherwise specified, all options default to off. defrag process. Works best for small files; Not well suited for large database workloads. + barrier + Enable the use of block layer write barriers. Write barriers ensure + that certain IOs make it through the device cache and are on persistent + storage. + Barriers are enabled by default. + check_int check_int_data check_int_print_mask=<value> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index e9c13fb..c8f4aca 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"}, @@ -498,6 +499,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) btrfs_info(root->fs_info, "turning off barriers"); btrfs_set_opt(info->mount_opt, NOBARRIER); 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_thread_pool: ret = match_int(&args[0], &intarg); if (ret) {
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) Reported-by: Daniel Blueman <daniel@quora.org> Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> --- Documentation/filesystems/btrfs.txt | 6 ++++++ fs/btrfs/super.c | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-)