lkml.org 
[lkml]   [2004]   [Apr]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [Patch] BME, noatime and nodiratime
    On Wed, Apr 07, 2004 at 08:46:37AM +0200, Herbert Poetzl wrote:
    > originally there was a 'comment' which said, the
    > (m) check can be removed, when we are sure that this
    > isn't called with mnt == NULL ...
    >
    > so maybe a BUGON(!m) might be useful?

    Accessing m->mnt_flags will do just fine ;-)

    > > Note that we don't need to keep MS_NOATIME check in update_atime() - that
    > > animal is purely per-mountpoint now.
    >
    > hmm, wasn't there a reason, for having them per inode
    > like for 'special' files, which I do not remember atm?

    Yes, but that's S_NOATIME in inode->i_flags, not MS_NOATIME in sb->s_flags.
    Actually, I've been wrong here - we *do* need that check, since there are
    filesystems that force noatime or nodiratime.

    From grepping for that stuff it appears that

    a) a bunch of filesystems force nodiratime and do not allow to override it
    on remount. Same for noatime (BTW, noatime implies nodiratime, so setting
    both is pointless).

    b) some filesystems force nodiratime at mount time, but do not care to preserve
    it on remount. Most of those are my fault - I've missed the remount side of
    things in readdir patch. They should have nodiratime always on to match
    the original behaviour. IMO, both (a) and (b) should be handled by a new
    field - sb->s_forced_flags. do_remount_sb() would set those in flags before
    doing anything else. Note that assignment to ->s_flags in do_remount_sb()
    is not safe - e.g. ext[23] can get forced r/o by fs error and if that
    happens after return from ->remount_sb() but before assignement, we are
    screwed. IOW, do_remount_sb() will need more work.

    c) XFS has an odd wankfest around MS_NOATIME - grep for XFSMNT_NOATIME and
    XFS_MOUNT_NOATIME. AFAICS the only use is in xfs_ichgtime() and it's
    redundant - we check IS_NOATIME() right after checking for XFS_MOUNT_NOATIME
    there. However, that will become very interesting when it gets to
    per-mountpoint r/o
    /*
    * We're not supposed to change timestamps in readonly-mounted
    * filesystems. Throw it away if anyone asks us.
    */
    if (unlikely(vp->v_vfsp->vfs_flag & VFS_RDONLY))
    return;
    in xfs_ichgtime() is too damn deep in call chains, so...

    d) nfs_getattr() is very odd - it overloads semantics of noatime and nodiratime
    for NFS in a strange way.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:02    [W:3.856 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site