[PATCH 14/27] r-o-bind-mounts-elevate-write-count-for-file_update_time

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <akpm@...>
Cc: <linux-kernel@...>, <miklos@...>, <hch@...>, Dave Hansen <haveblue@...>
Date: Thursday, November 1, 2007 - 7:08 pm

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Acked-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 linux-2.6.git-dave/fs/inode.c |   13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff -puN fs/inode.c~r-o-bind-mounts-elevate-write-count-for-file_update_time fs/inode.c
--- linux-2.6.git/fs/inode.c~r-o-bind-mounts-elevate-write-count-for-file_update_time	2007-11-01 14:46:13.000000000 -0700
+++ linux-2.6.git-dave/fs/inode.c	2007-11-01 14:46:13.000000000 -0700
@@ -1263,10 +1263,19 @@ void file_update_time(struct file *file)
 	struct inode *inode = file->f_path.dentry->d_inode;
 	struct timespec now;
 	int sync_it = 0;
+	int err = 0;
 
 	if (IS_NOCMTIME(inode))
 		return;
-	if (IS_RDONLY(inode))
+	/*
+	 * Ideally, we want to guarantee that 'f_vfsmnt'
+	 * is non-NULL here.  But, NFS exports need to
+	 * be fixed up before we can do that.  So, check
+	 * it for now. - Dave Hansen
+	 */
+	if (file->f_vfsmnt)
+		err = mnt_want_write(file->f_vfsmnt);
+	if (err)
 		return;
 
 	now = current_fs_time(inode->i_sb);
@@ -1282,6 +1291,8 @@ void file_update_time(struct file *file)
 
 	if (sync_it)
 		mark_inode_dirty_sync(inode);
+	if (file->f_vfsmnt)
+		mnt_drop_write(file->f_vfsmnt);
 }
 
 EXPORT_SYMBOL(file_update_time);
_
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00/27] Read-only bind mounts (-mm resend), Dave Hansen, (Thu Nov 1, 7:08 pm)
[PATCH 14/27] r-o-bind-mounts-elevate-write-count-for-file_u..., Dave Hansen, (Thu Nov 1, 7:08 pm)
[PATCH 06/27] r-o-bind-mounts-stub-functions, Dave Hansen, (Thu Nov 1, 7:08 pm)
[PATCH 05/27] rename open_namei() to open_pathname(), Dave Hansen, (Thu Nov 1, 7:08 pm)
Re: [PATCH 05/27] rename open_namei() to open_pathname(), Christoph Hellwig, (Mon Nov 26, 10:33 am)
[PATCH 04/27] kill filp_open(), Dave Hansen, (Thu Nov 1, 7:08 pm)
Re: [PATCH 04/27] kill filp_open(), Andrew Morton, (Wed Jan 16, 4:52 am)
Re: [PATCH 04/27] kill filp_open(), Dave Hansen, (Wed Jan 16, 1:04 pm)
Re: [PATCH 04/27] kill filp_open(), Bryn M. Reeves, (Wed Jan 16, 1:12 pm)
Re: [PATCH 04/27] kill filp_open(), Christoph Hellwig, (Wed Jan 16, 1:10 pm)
Re: [PATCH 04/27] kill filp_open(), Dave Hansen, (Wed Jan 16, 1:41 pm)
Re: [PATCH 04/27] kill filp_open(), Christoph Hellwig, (Wed Jan 16, 1:47 pm)
[PATCH 03/27] kill do_filp_open(), Dave Hansen, (Thu Nov 1, 7:08 pm)
[PATCH 02/27] make open_namei() return a filp, Dave Hansen, (Thu Nov 1, 7:08 pm)