LWN.net Logo

nodiratime

nodiratime

Posted Aug 9, 2007 16:17 UTC (Thu) by corbet (editor, #1)
In reply to: nodiratime by elanthis
Parent article: Once upon atime

noatime implies nodiratime - it's a superset. You can use nodiratime by itself to turn off the updates on directories only. As you note, it does not seem to be widely used.


(Log in to post comments)

Does noatime imply nodiratime?

Posted Aug 9, 2007 20:17 UTC (Thu) by tarvin (subscriber, #4412) [Link]

Are you sure about noatime implying nodiratime?

mount(8) states:
  noatime
    Do not update inode access times on this file system[...]

  nodiratime
    Do not update directory inode access times on this filesystem.

while mount(2) puts it this way:
  MS_NOATIME
    Do not update access times for (all types of) files on this file system.

  MS_NODIRATIME
    Do not update access times for directories on this file system.

I wonder how to interpret mount(2)'s (all types of) files for noatime: Is a directory considered a file in this context?

Does noatime imply nodiratime?

Posted Aug 9, 2007 20:39 UTC (Thu) by corbet (editor, #1) [Link]

Yep, I'm sure. When in doubt, use the source. From touch_atime() in fs/inode.c:

void touch_atime(struct vfsmount *mnt, struct dentry *dentry)
{
        /* ... */
        if (inode->i_flags & S_NOATIME)
                return;
        if (IS_NOATIME(inode))
                return;
        if ((inode->i_sb->s_flags & MS_NODIRATIME) && S_ISDIR(inode->i_mode))
                return;

So if NOATIME is set, the NODIRATIME flag is never even checked.

Does noatime imply nodiratime?

Posted Aug 10, 2007 6:41 UTC (Fri) by tarvin (subscriber, #4412) [Link]

OK. I've been using noatime systematically for years. And then I read about a prominent kernel developer like Molnar using both noatime and nodiratime, making me worried: Have I been missing out on I/O-performance for years?

- But your definite statement is comforting, thanks. I'll keep using just "noatime".

Does noatime imply nodiratime?

Posted Aug 10, 2007 14:26 UTC (Fri) by jzbiciak (✭ supporter ✭, #5246) [Link]

Actually, Andrew Morton actually corrected Ingo on this point:
From: Andrew Morton 
To:	Ingo Molnar 
Subject: Re: [PATCH 00/23] per device dirty throttling -v8
Date:	Sun, 5 Aug 2007 00:29:34 -0700

On Sun, 5 Aug 2007 09:21:41 +0200 Ingo Molnar [email blocked] wrote:

> even on a noatime,nodiratime filesystem

noatime is a superset of nodiratime, btw.
I trust Andrew on this point. :-)

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds