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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've been cooking a very simple patch that hopefully gives both sides of the "great strictatime war" what they want with minimal pain. I sent it through kernelnewbies for a basic review and got some polish on irc.

----

Signed-off-by: Raymond Jennings <shentino@xxxxxxxxx>
Reviewed-by: Mandeep Sandhu <mandeepsandhu.chd@xxxxxxxxx>

diff --git a/fs/Kconfig b/fs/Kconfig
index 6ce72d8..122a993 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -4,6 +4,20 @@

menu "File systems"

+config DEFAULT_STRICTATIME
+	bool "Use strictatime by default"
+	default n
+	help
+	  Use strictatime as a default mount option.
+
+ Relatime became the default in 2007 to reduce I/O load on block devices.
+
+ Enabling this option will restore historic behavior and provide perfectly + accurate atimes, but the increase in write load may reduce performance
+	  and shorten the life of the block device.
+
+	  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)

---------- Forwarded message ----------

From: Mandeep Sandhu <mandeepsandhu.chd@xxxxxxxxx>
Subject: Re: [PATCH] allow strictatime to be set as a global default
Date: Sat, 19 Dec 2015 17:25:37 -0800
To: Raymond Jennings <shentino@xxxxxxxxx>
Cc: kernelnewbies <kernelnewbies@xxxxxxxxxxxxxxxxx>

Looks good to me.

To test the real waters....you should send it to the lists you
mentioned (or whatever the maintainers script tells you).

Good luck,
-mandeep


On Sat, Dec 19, 2015 at 1:41 PM, Raymond Jennings <shentino@xxxxxxxxx> wrote:
 How does this version look?

 (the other delta for the other file was untouched)

Any chance it is ready to post to the big list (presumably fs with a cc to
 lkml)?

 diff --git a/fs/Kconfig b/fs/Kconfig
 index 6ce72d8..122a993 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
 @@ -4,6 +4,20 @@

  menu "File systems"

 +config DEFAULT_STRICTATIME
 + bool "Use strictatime by default"
 + default n
 + help
 +  Use strictatime as a default mount option.
 +
+ Relatime became the default in 2007 to reduce I/O load on block devices.
 +
+ Enabling this option will restore historic behavior and provide perfectly + accurate atimes, but the increase in write load may reduce performance
 +  and shorten the life of the block device.
 +
 +  If unsure, say N.
 +
  # Use unaligned word dcache accesses
  config DCACHE_WORD_ACCESS
         bool

 On Fri, Dec 18, 2015 at 2:21 PM, Mandeep Sandhu
 <mandeepsandhu.chd@xxxxxxxxx> wrote:

 Ah yes...now it makes sense! :)

 The current 'word of caution' (about increased I/O load on block
 devices), seems mild IMHO. Maybe we should we have a stricter
warning...something like enabling this option might be harmful to the life of your block device (due to excessive writes) and will also lead
 to reduced performance?

 HTH,
 -mandeep


On Fri, Dec 18, 2015 at 2:12 PM, Raymond Jennings <shentino@xxxxxxxxx>
 wrote:
 > On Fri, Dec 18, 2015 at 10:50 AM, Mandeep Sandhu
 > <mandeepsandhu.chd@xxxxxxxxx> 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)
 >
 >
 >



--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux