[PATCH] allow strictatime to be set as a global default

Raymond Jennings shentino at gmail.com
Fri Dec 18 17:12:18 EST 2015


On Fri, Dec 18, 2015 at 10:50 AM, Mandeep Sandhu 
<mandeepsandhu.chd at gmail.com> wrote:
> You've removed the strictatime option altogether. So how does that
> satisfy people who _do_ want it?

...actually it looks like I was an idiot and got my diff backwards when 
I pulled it out of git :P

Here's the correct version.

diff --git a/fs/Kconfig b/fs/Kconfig
index 6ce72d8..4b917eb 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -4,6 +4,17 @@

 menu "File systems"

+config DEFAULT_STRICTATIME
+	bool "Use strictatime by default"
+	default n
+	help
+	  Use strictatime as a default mount option.
+
+	  Strictatime preserves ancient historic behavior of keeping the 
atime field always up to date.
+	  However, it was changed in 2007 to relatime to reduce I/O load on 
block devices.
+
+	  If unsure, say N.
+
 # Use unaligned word dcache accesses
 config DCACHE_WORD_ACCESS
        bool
diff --git a/fs/namespace.c b/fs/namespace.c
index 0570729..48e7c15 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -2680,9 +2680,15 @@ long do_mount(const char *dev_name, const char 
__user *dir_name,
 	if (retval)
 		goto dput_out;

-	/* Default to relatime unless overriden */
+#ifdef CONFIG_DEFAULT_STRICTATIME
+	/* Default to strictatime unless overridden */
+	if (flags & MS_RELATIME)
+		mnt_flags |= MNT_RELATIME;
+#else
+	/* Default to relatime unless overridden */
 	if (!(flags & MS_NOATIME))
 		mnt_flags |= MNT_RELATIME;
+#endif

 	/* Separate the per-mountpoint flags */
 	if (flags & MS_NOSUID)






More information about the Kernelnewbies mailing list