Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Patch 2/6] Bind Mount Extensions 0.06

0 views
Skip to first unread message

Herbert Poetzl

unread,
Feb 22, 2005, 7:20:07 AM2/22/05
to

;
; Bind Mount Extensions
;
; This part adds the required checks for touch_atime() to allow
; for vfsmount based NOATIME and NODIRATIME
; autofs4 update_atime is the only exception (ignored on purpose)
;
; Copyright (C) 2003-2005 Herbert Pötzl <her...@13thfloor.at>
;
; Changelog:
;
; 0.01 - broken out part from bme0.05
;
; this patch is free software; you can redistribute it and/or
; modify it under the terms of the GNU General Public License
; as published by the Free Software Foundation; either version 2
; of the License, or (at your option) any later version.
;
; this patch is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;

diff -NurpP --minimal linux-2.6.11-rc4-bme0.06-bm0.01/include/linux/fs.h linux-2.6.11-rc4-bme0.06-bm0.01-at0.01/include/linux/fs.h
--- linux-2.6.11-rc4-bme0.06-bm0.01/include/linux/fs.h 2005-02-19 06:31:24 +0100
+++ linux-2.6.11-rc4-bme0.06-bm0.01-at0.01/include/linux/fs.h 2005-02-19 06:31:36 +0100
@@ -1038,8 +1038,16 @@ static inline void mark_inode_dirty_sync

static inline void touch_atime(struct vfsmount *mnt, struct dentry *dentry)
{
- /* per-mountpoint checks will go here */
- update_atime(dentry->d_inode);
+ struct inode *inode = dentry->d_inode;
+
+ if (MNT_IS_NOATIME(mnt))
+ return;
+ if (S_ISDIR(inode->i_mode) && MNT_IS_NODIRATIME(mnt))
+ return;
+ if (IS_RDONLY(inode) || MNT_IS_RDONLY(mnt))
+ return;
+
+ update_atime(inode);
}

static inline void file_accessed(struct file *file)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Christoph Hellwig

unread,
Feb 23, 2005, 6:20:13 PM2/23/05
to
On Tue, Feb 22, 2005 at 01:11:29PM +0100, Herbert Poetzl wrote:
>
>
> ;
> ; Bind Mount Extensions
> ;
> ; This part adds the required checks for touch_atime() to allow
> ; for vfsmount based NOATIME and NODIRATIME
> ; autofs4 update_atime is the only exception (ignored on purpose)

and that purpose is? Did you discuss this with the autofs maintainers?

Herbert Poetzl

unread,
Feb 24, 2005, 4:30:14 PM2/24/05
to
On Wed, Feb 23, 2005 at 11:01:05PM +0000, Christoph Hellwig wrote:
> On Tue, Feb 22, 2005 at 01:11:29PM +0100, Herbert Poetzl wrote:
> >
> >
> > ;
> > ; Bind Mount Extensions
> > ;
> > ; This part adds the required checks for touch_atime() to allow
> > ; for vfsmount based NOATIME and NODIRATIME
> > ; autofs4 update_atime is the only exception (ignored on purpose)
>
> and that purpose is?

this is based on a statement from Al Viro:

| autofs4 use - AFAICS there we want atime updated unconditionally,
| so calling update_atime() (update atime after checking
| noatime/nodiratime/readonly flags) is wrong.

agreed, maybe a proper fix would be better ...

> Did you discuss this with the autofs maintainers?

not yet!
(cc-ed to automounter maintainer and list)

thanks,
Herbert

ra...@themaw.net

unread,
Feb 25, 2005, 8:30:14 AM2/25/05
to
On Thu, 24 Feb 2005, Herbert Poetzl wrote:

> On Wed, Feb 23, 2005 at 11:01:05PM +0000, Christoph Hellwig wrote:
>> On Tue, Feb 22, 2005 at 01:11:29PM +0100, Herbert Poetzl wrote:
>>>
>>>
>>> ;
>>> ; Bind Mount Extensions
>>> ;
>>> ; This part adds the required checks for touch_atime() to allow
>>> ; for vfsmount based NOATIME and NODIRATIME
>>> ; autofs4 update_atime is the only exception (ignored on purpose)
>>
>> and that purpose is?
>
> this is based on a statement from Al Viro:
>
> | autofs4 use - AFAICS there we want atime updated unconditionally,
> | so calling update_atime() (update atime after checking
> | noatime/nodiratime/readonly flags) is wrong.
>
> agreed, maybe a proper fix would be better ...
>
>> Did you discuss this with the autofs maintainers?

I've had a look at the patch and I can't see any problem.

autofs4 doesn't use the inode atime for expire purposes but does update it
in sync with its dentry info struct field that is used for this purpose.

So AFAICS the atime is an external view of expire status,
but only when updated within the autofs4 module VFS callbacks.

I haven't yet looked at the v3 (autofs) module.
I'll get back if I see an issue there.

Ian

0 new messages