All of lore.kernel.org
 help / color / mirror / Atom feed
From: Artem Bityutskiy <dedekind1@gmail.com>
To: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Cc: Dave Chinner <david@fromorbit.com>,
	Richard Weinberger <richard@nod.at>,
	linux-mtd@lists.infradead.org, adrian.hunter@intel.com,
	linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH RESEND] ubifs: Introduce a mount option of force_atime.
Date: Fri, 26 Jun 2015 10:01:23 +0300	[thread overview]
Message-ID: <1435302083.9627.36.camel@sauron.fi.intel.com> (raw)
In-Reply-To: <558CA82B.7050306@cn.fujitsu.com>

On Fri, 2015-06-26 at 09:17 +0800, Dongsheng Yang wrote:
> On 06/25/2015 07:28 PM, Artem Bityutskiy wrote:
> > On Thu, 2015-06-25 at 18:10 +0800, Dongsheng Yang wrote:
> >>   > -o - default behavior (no atime)
> >>   > -o relatime - relative atime support
> >>
> >> We would find both of them are MS_RELATIME set. But we
> >> want to do different thing in these cases. So I introduced
> >> the force_atime. Then:
> >
> > Oh, do you know where exactly the default MS_RELATIME gets set?
> 
> Ha, yes, it was set in do_mount() in vfs. I mentioned this in a mail
> days ago, but let me try to explain it more clearly here.

OK, right, I see it:


commit 0a1c01c9477602ee8b44548a9405b2c1d587b5a2
Author: Matthew Garrett <mjg@redhat.com>
Date:   Thu Mar 26 17:53:14 2009 +0000

    Make relatime default
    
    Change the default behaviour of the kernel to use relatime for all
    filesystems. This can be overridden with the "strictatime" mount
    option.
    
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff --git a/fs/namespace.c b/fs/namespace.c
index d0659ec..f0e7530 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1920,6 +1920,9 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
        if (data_page)
                ((char *)data_page)[PAGE_SIZE - 1] = 0;
 
+       /* Default to relatime */
+       mnt_flags |= MNT_RELATIME;
+
        /* Separate the per-mountpoint flags */
        if (flags & MS_NOSUID)
                mnt_flags |= MNT_NOSUID;
@@ -1931,8 +1934,6 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
                mnt_flags |= MNT_NOATIME;
        if (flags & MS_NODIRATIME)
                mnt_flags |= MNT_NODIRATIME;
-       if (flags & MS_RELATIME)
-               mnt_flags |= MNT_RELATIME;
        if (flags & MS_STRICTATIME)
                mnt_flags &= ~(MNT_RELATIME | MNT_NOATIME);
        if (flags & MS_RDONLY)


This means that if a file-system (e.g., UBIFS or JFFS2) never supported
atime, it is harder to add atime support without breaking the old
behavior.

What if we push the two "set NOATIME flag" lines of code down to
individual file-systems, instead of having it at the VFS level?

... snip ...

> (d), But when I heard an idea about UBIFS_ATIME_SUPPORT from you.
> I get an idea 3.
> ======================idea 3 in ubifs=========================
> UBIFS_ATIME_SUPPORT is n, same with what ubifs did:
> -o - no atime
> -o atime - no atime
> -o noatime - no atime
> -o relatime - no atime
> -o strictatime - no atime
> -o lazyatime - no atime
> 
> UBIFS_ATIME_SUPPORT is y, same with what generic is doing:
> -o - default behavior (relatime currently)
> -o atime - atime support
> -o noatime - no atime support
> -o relatime - relative atime support
> -o strictatime - strict atime support
> -o lazyatime - lazy atime support

Yes, this is an option, I am just trying to explore other possibilities.


WARNING: multiple messages have this Message-ID (diff)
From: Artem Bityutskiy <dedekind1@gmail.com>
To: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Cc: linux-fsdevel@vger.kernel.org,
	Richard Weinberger <richard@nod.at>,
	Dave Chinner <david@fromorbit.com>,
	adrian.hunter@intel.com, linux-mtd@lists.infradead.org
Subject: Re: [PATCH RESEND] ubifs: Introduce a mount option of force_atime.
Date: Fri, 26 Jun 2015 10:01:23 +0300	[thread overview]
Message-ID: <1435302083.9627.36.camel@sauron.fi.intel.com> (raw)
In-Reply-To: <558CA82B.7050306@cn.fujitsu.com>

On Fri, 2015-06-26 at 09:17 +0800, Dongsheng Yang wrote:
> On 06/25/2015 07:28 PM, Artem Bityutskiy wrote:
> > On Thu, 2015-06-25 at 18:10 +0800, Dongsheng Yang wrote:
> >>   > -o - default behavior (no atime)
> >>   > -o relatime - relative atime support
> >>
> >> We would find both of them are MS_RELATIME set. But we
> >> want to do different thing in these cases. So I introduced
> >> the force_atime. Then:
> >
> > Oh, do you know where exactly the default MS_RELATIME gets set?
> 
> Ha, yes, it was set in do_mount() in vfs. I mentioned this in a mail
> days ago, but let me try to explain it more clearly here.

OK, right, I see it:


commit 0a1c01c9477602ee8b44548a9405b2c1d587b5a2
Author: Matthew Garrett <mjg@redhat.com>
Date:   Thu Mar 26 17:53:14 2009 +0000

    Make relatime default
    
    Change the default behaviour of the kernel to use relatime for all
    filesystems. This can be overridden with the "strictatime" mount
    option.
    
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff --git a/fs/namespace.c b/fs/namespace.c
index d0659ec..f0e7530 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1920,6 +1920,9 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
        if (data_page)
                ((char *)data_page)[PAGE_SIZE - 1] = 0;
 
+       /* Default to relatime */
+       mnt_flags |= MNT_RELATIME;
+
        /* Separate the per-mountpoint flags */
        if (flags & MS_NOSUID)
                mnt_flags |= MNT_NOSUID;
@@ -1931,8 +1934,6 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
                mnt_flags |= MNT_NOATIME;
        if (flags & MS_NODIRATIME)
                mnt_flags |= MNT_NODIRATIME;
-       if (flags & MS_RELATIME)
-               mnt_flags |= MNT_RELATIME;
        if (flags & MS_STRICTATIME)
                mnt_flags &= ~(MNT_RELATIME | MNT_NOATIME);
        if (flags & MS_RDONLY)


This means that if a file-system (e.g., UBIFS or JFFS2) never supported
atime, it is harder to add atime support without breaking the old
behavior.

What if we push the two "set NOATIME flag" lines of code down to
individual file-systems, instead of having it at the VFS level?

... snip ...

> (d), But when I heard an idea about UBIFS_ATIME_SUPPORT from you.
> I get an idea 3.
> ======================idea 3 in ubifs=========================
> UBIFS_ATIME_SUPPORT is n, same with what ubifs did:
> -o - no atime
> -o atime - no atime
> -o noatime - no atime
> -o relatime - no atime
> -o strictatime - no atime
> -o lazyatime - no atime
> 
> UBIFS_ATIME_SUPPORT is y, same with what generic is doing:
> -o - default behavior (relatime currently)
> -o atime - atime support
> -o noatime - no atime support
> -o relatime - relative atime support
> -o strictatime - strict atime support
> -o lazyatime - lazy atime support

Yes, this is an option, I am just trying to explore other possibilities.

  reply	other threads:[~2015-06-26  7:01 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-08 10:07 [PATCH RESEND] ubifs: Introduce a mount option of force_atime Dongsheng Yang
2015-06-08 10:07 ` Dongsheng Yang
2015-06-08 22:35 ` Richard Weinberger
2015-06-08 22:55 ` Richard Weinberger
2015-06-09  2:57   ` Dongsheng Yang
2015-06-09  2:57     ` Dongsheng Yang
2015-06-09  3:24   ` Dongsheng Yang
2015-06-09  3:24     ` Dongsheng Yang
2015-06-09  5:00     ` Dongsheng Yang
2015-06-09  5:00       ` Dongsheng Yang
2015-06-09  5:09       ` Dongsheng Yang
2015-06-09  5:09         ` Dongsheng Yang
2015-06-09  6:36 ` Artem Bityutskiy
2015-06-09  6:36   ` Artem Bityutskiy
2015-06-09  8:02   ` Richard Weinberger
2015-06-09  8:02     ` Richard Weinberger
2015-06-10  3:16     ` Dongsheng Yang
2015-06-10  3:16       ` Dongsheng Yang
2015-06-10  9:21       ` Artem Bityutskiy
2015-06-10  9:21         ` Artem Bityutskiy
2015-06-10 10:10         ` Dongsheng Yang
2015-06-10 10:10           ` Dongsheng Yang
2015-06-10 10:25           ` Artem Bityutskiy
2015-06-10 10:25             ` Artem Bityutskiy
2015-06-10 10:34             ` Dongsheng Yang
2015-06-10 10:34               ` Dongsheng Yang
2015-06-10 11:05               ` Artem Bityutskiy
2015-06-10 11:05                 ` Artem Bityutskiy
2015-06-23  9:55                 ` Dongsheng Yang
2015-06-23  9:55                   ` Dongsheng Yang
2015-06-23 10:44                   ` Artem Bityutskiy
2015-06-23 10:44                     ` Artem Bityutskiy
2015-06-23 23:49                     ` Dongsheng Yang
2015-06-23 23:49                       ` Dongsheng Yang
2015-06-24  0:33                     ` Dave Chinner
2015-06-24  0:33                       ` Dave Chinner
2015-06-24 16:04                       ` Artem Bityutskiy
2015-06-24 16:04                         ` Artem Bityutskiy
2015-06-25  9:55                       ` Dongsheng Yang
2015-06-25  9:55                         ` Dongsheng Yang
2015-06-25 10:08                         ` Artem Bityutskiy
2015-06-25 10:08                           ` Artem Bityutskiy
2015-06-25 10:10                           ` Dongsheng Yang
2015-06-25 10:10                             ` Dongsheng Yang
2015-06-25 11:28                             ` Artem Bityutskiy
2015-06-25 11:28                               ` Artem Bityutskiy
2015-06-26  1:17                               ` Dongsheng Yang
2015-06-26  1:17                                 ` Dongsheng Yang
2015-06-26  7:01                                 ` Artem Bityutskiy [this message]
2015-06-26  7:01                                   ` Artem Bityutskiy
2015-06-26  7:13                                   ` Dongsheng Yang
2015-06-26  7:13                                     ` Dongsheng Yang
2015-06-26  7:43                                     ` Artem Bityutskiy
2015-06-26  7:43                                       ` Artem Bityutskiy
2015-06-26  7:52                                       ` Dongsheng Yang
2015-06-26  7:52                                         ` Dongsheng Yang
2015-06-26  8:19                                         ` Artem Bityutskiy
2015-06-26  8:19                                           ` Artem Bityutskiy
2015-06-26  8:22                                           ` Dongsheng Yang
2015-06-26  8:22                                             ` Dongsheng Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1435302083.9627.36.camel@sauron.fi.intel.com \
    --to=dedekind1@gmail.com \
    --cc=adrian.hunter@intel.com \
    --cc=david@fromorbit.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard@nod.at \
    --cc=yangds.fnst@cn.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.