From: Christoph Hellwig Subject: [PATCH 2/2] remove update_atime Date: Fri, 4 Nov 2005 23:30:22 +0100 Message-ID: <20051104223022.GB9608@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org Return-path: Received: from verein.lst.de ([213.95.11.210]:31142 "EHLO mail.lst.de") by vger.kernel.org with ESMTP id S1750914AbVKDWa1 (ORCPT ); Fri, 4 Nov 2005 17:30:27 -0500 To: akpm@osdl.org Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org all callers use touch_atime now which takes a vfsmount and allows us to implement per-mount noatime. Signed-off-by: Christoph Hellwig Index: linux-2.6/fs/inode.c =================================================================== --- linux-2.6.orig/fs/inode.c 2005-10-31 14:29:29.000000000 +0100 +++ linux-2.6/fs/inode.c 2005-10-31 20:08:48.000000000 +0100 @@ -1176,17 +1176,20 @@ EXPORT_SYMBOL(bmap); /** - * update_atime - update the access time + * touch_atime - update the access time + * @mnt: mount the inode is accessed on * @inode: inode accessed * * Update the accessed time on an inode and mark it for writeback. * This function automatically handles read only file systems and media, * as well as the "noatime" flag and inode specific "noatime" markers. */ -void update_atime(struct inode *inode) +void touch_atime(struct vfsmount *mnt, struct dentry *dentry) { + struct inode *inode = dentry->d_inode; struct timespec now; + /* per-mountpoint checks will go here */ if (IS_NOATIME(inode)) return; if (IS_NODIRATIME(inode) && S_ISDIR(inode->i_mode)) @@ -1201,7 +1204,7 @@ } } -EXPORT_SYMBOL(update_atime); +EXPORT_SYMBOL(touch_atime); /** * file_update_time - update mtime and ctime time Index: linux-2.6/include/linux/fs.h =================================================================== --- linux-2.6.orig/include/linux/fs.h 2005-10-31 19:25:47.000000000 +0100 +++ linux-2.6/include/linux/fs.h 2005-10-31 20:08:11.000000000 +0100 @@ -230,9 +230,6 @@ struct vm_area_struct; struct vfsmount; -/* Used to be a macro which just called the function, now just a function */ -extern void update_atime (struct inode *); - extern void __init inode_init(unsigned long); extern void __init inode_init_early(void); extern void __init mnt_init(unsigned long); @@ -1075,12 +1072,7 @@ __mark_inode_dirty(inode, I_DIRTY_SYNC); } -static inline void touch_atime(struct vfsmount *mnt, struct dentry *dentry) -{ - /* per-mountpoint checks will go here */ - update_atime(dentry->d_inode); -} - +extern void touch_atime(struct vfsmount *mnt, struct dentry *dentry); static inline void file_accessed(struct file *file) { if (!(file->f_flags & O_NOATIME))