2010-07-07 11:12:45 +00:00
|
|
|
From: Jeff Mahoney <jeffm@suse.com>
|
|
|
|
Subject: Make reiserfs default to barrier=flush
|
|
|
|
Patch-mainline: not yet
|
|
|
|
|
|
|
|
Change the default reiserfs mount option to barrier=flush
|
|
|
|
|
|
|
|
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
|
|
|
|
---
|
|
|
|
|
|
|
|
fs/reiserfs/Kconfig | 22 ++++++++++++++++++++++
|
|
|
|
fs/reiserfs/super.c | 3 +++
|
|
|
|
2 files changed, 25 insertions(+)
|
|
|
|
|
|
|
|
--- a/fs/reiserfs/Kconfig
|
|
|
|
+++ b/fs/reiserfs/Kconfig
|
|
|
|
@@ -50,6 +50,28 @@ config REISERFS_PROC_INFO
|
|
|
|
Almost everyone but ReiserFS developers and people fine-tuning
|
|
|
|
reiserfs or tracing problems should say N.
|
|
|
|
|
|
|
|
+config REISERFS_DEFAULTS_TO_BARRIERS_ENABLED
|
|
|
|
+ bool "Default to 'barrier=flush' in reiserfs"
|
|
|
|
+ depends on REISERFS_FS
|
|
|
|
+ help
|
|
|
|
+ Modern disk drives support write caches that can speed up writeback.
|
|
|
|
+ Some devices, in order to improve their performance statistics,
|
|
|
|
+ report that the write has been completed even when it has only
|
|
|
|
+ been committed to volatile cache memory. This can result in
|
|
|
|
+ severe corruption in the event of power loss.
|
|
|
|
+
|
|
|
|
+ The -o barrier option enables the file system to direct the block
|
|
|
|
+ layer to issue a barrier, which ensures that the cache has been
|
|
|
|
+ flushed before proceeding. This can produce some slowdown in
|
|
|
|
+ certain environments, but allows higher end storage arrays with
|
|
|
|
+ battery-backed caches to report completes writes sooner than
|
|
|
|
+ would be otherwise possible.
|
|
|
|
+
|
|
|
|
+ Without this option, disk write caches should be disabled if
|
|
|
|
+ you value data integrity over writeback performance.
|
|
|
|
+
|
|
|
|
+ If unsure, say N.
|
|
|
|
+
|
|
|
|
config REISERFS_FS_XATTR
|
|
|
|
bool "ReiserFS extended attributes"
|
|
|
|
depends on REISERFS_FS
|
|
|
|
--- a/fs/reiserfs/super.c
|
|
|
|
+++ b/fs/reiserfs/super.c
|
2011-04-19 20:09:59 +00:00
|
|
|
@@ -1637,6 +1637,9 @@ static int reiserfs_fill_super(struct su
|
2010-07-07 11:12:45 +00:00
|
|
|
/* Set default values for options: non-aggressive tails, RO on errors */
|
|
|
|
REISERFS_SB(s)->s_mount_opt |= (1 << REISERFS_SMALLTAIL);
|
|
|
|
REISERFS_SB(s)->s_mount_opt |= (1 << REISERFS_ERROR_RO);
|
|
|
|
+#ifdef CONFIG_REISERFS_DEFAULTS_TO_BARRIERS_ENABLED
|
|
|
|
+ REISERFS_SB(s)->s_mount_opt |= (1 << REISERFS_BARRIER_FLUSH);
|
|
|
|
+#endif
|
|
|
|
/* no preallocation minimum, be smart in
|
|
|
|
reiserfs_file_write instead */
|
|
|
|
REISERFS_SB(s)->s_alloc_options.preallocmin = 0;
|