linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ctime/mtime update in affs and hpfs write path
@ 2005-10-31 23:53 Christoph Hellwig
  2005-11-01  1:03 ` Roman Zippel
  2005-11-03  0:29 ` ctime/mtime update in affs and hpfs write path Mikulas Patocka
  0 siblings, 2 replies; 5+ messages in thread
From: Christoph Hellwig @ 2005-10-31 23:53 UTC (permalink / raw)
  To: linux-fsdevel, mikulas, zippel

Both AFFS and HPFS update the ctime and mtime in the write path, after
generic_file_write returned and mark the inode dirty.  Anyone's got an
idea why these two filesystems aren't happy with the ctime/mtime updates
vi generic_file_write before we copied the data into the pagecache?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ctime/mtime update in affs and hpfs write path
  2005-10-31 23:53 ctime/mtime update in affs and hpfs write path Christoph Hellwig
@ 2005-11-01  1:03 ` Roman Zippel
  2005-11-01  1:07   ` [PATCH] remove superflous ctime/mtime updates in affs Christoph Hellwig
  2005-11-03  0:29 ` ctime/mtime update in affs and hpfs write path Mikulas Patocka
  1 sibling, 1 reply; 5+ messages in thread
From: Roman Zippel @ 2005-11-01  1:03 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-fsdevel, mikulas

Hi,

On Tue, 1 Nov 2005, Christoph Hellwig wrote:

> Both AFFS and HPFS update the ctime and mtime in the write path, after
> generic_file_write returned and mark the inode dirty.  Anyone's got an
> idea why these two filesystems aren't happy with the ctime/mtime updates
> vi generic_file_write before we copied the data into the pagecache?

For affs I don't really know, my best guess is it has been there forever 
and there never was a reason to remove it.

bye, Roman

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] remove superflous ctime/mtime updates in affs
  2005-11-01  1:03 ` Roman Zippel
@ 2005-11-01  1:07   ` Christoph Hellwig
  2005-11-01  1:20     ` Roman Zippel
  0 siblings, 1 reply; 5+ messages in thread
From: Christoph Hellwig @ 2005-11-01  1:07 UTC (permalink / raw)
  To: akpm, Roman Zippel; +Cc: linux-fsdevel, mikulas

On Tue, Nov 01, 2005 at 02:03:29AM +0100, Roman Zippel wrote:
> > Both AFFS and HPFS update the ctime and mtime in the write path, after
> > generic_file_write returned and mark the inode dirty.  Anyone's got an
> > idea why these two filesystems aren't happy with the ctime/mtime updates
> > vi generic_file_write before we copied the data into the pagecache?
> 
> For affs I don't really know, my best guess is it has been there forever 
> and there never was a reason to remove it.

Ok, what about the following patch?


Signed-off-by: Christoph Hellwig <hch@lst.de>

Index: linux-2.6/fs/affs/file.c
===================================================================
--- linux-2.6.orig/fs/affs/file.c	2005-10-31 15:44:42.000000000 +0100
+++ linux-2.6/fs/affs/file.c	2005-10-31 17:25:26.000000000 +0100
@@ -22,14 +22,13 @@
 static struct buffer_head *affs_alloc_extblock(struct inode *inode, struct buffer_head *bh, u32 ext);
 static inline struct buffer_head *affs_get_extblock(struct inode *inode, u32 ext);
 static struct buffer_head *affs_get_extblock_slow(struct inode *inode, u32 ext);
-static ssize_t affs_file_write(struct file *filp, const char __user *buf, size_t count, loff_t *ppos);
 static int affs_file_open(struct inode *inode, struct file *filp);
 static int affs_file_release(struct inode *inode, struct file *filp);
 
 struct file_operations affs_file_operations = {
 	.llseek		= generic_file_llseek,
 	.read		= generic_file_read,
-	.write		= affs_file_write,
+	.write		= generic_file_write,
 	.mmap		= generic_file_mmap,
 	.open		= affs_file_open,
 	.release	= affs_file_release,
@@ -473,21 +472,6 @@
 	return ERR_PTR(err);
 }
 
-static ssize_t
-affs_file_write(struct file *file, const char __user *buf,
-		size_t count, loff_t *ppos)
-{
-	ssize_t retval;
-
-	retval = generic_file_write (file, buf, count, ppos);
-	if (retval >0) {
-		struct inode *inode = file->f_dentry->d_inode;
-		inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC;
-		mark_inode_dirty(inode);
-	}
-	return retval;
-}
-
 static int
 affs_do_readpage_ofs(struct file *file, struct page *page, unsigned from, unsigned to)
 {

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] remove superflous ctime/mtime updates in affs
  2005-11-01  1:07   ` [PATCH] remove superflous ctime/mtime updates in affs Christoph Hellwig
@ 2005-11-01  1:20     ` Roman Zippel
  0 siblings, 0 replies; 5+ messages in thread
From: Roman Zippel @ 2005-11-01  1:20 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: akpm, linux-fsdevel, mikulas

Hi,

On Tue, 1 Nov 2005, Christoph Hellwig wrote:

> > For affs I don't really know, my best guess is it has been there forever 
> > and there never was a reason to remove it.
> 
> Ok, what about the following patch?
> 
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Acked-by: Roman Zippel <zippel@linux-m68k.org>

bye, Roman

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ctime/mtime update in affs and hpfs write path
  2005-10-31 23:53 ctime/mtime update in affs and hpfs write path Christoph Hellwig
  2005-11-01  1:03 ` Roman Zippel
@ 2005-11-03  0:29 ` Mikulas Patocka
  1 sibling, 0 replies; 5+ messages in thread
From: Mikulas Patocka @ 2005-11-03  0:29 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-fsdevel, zippel



On Tue, 1 Nov 2005, Christoph Hellwig wrote:

> Both AFFS and HPFS update the ctime and mtime in the write path, after
> generic_file_write returned and mark the inode dirty.  Anyone's got an
> idea why these two filesystems aren't happy with the ctime/mtime updates
> vi generic_file_write before we copied the data into the pagecache?

In HPFS, there's no reason for mtime update --- just that it was left when 
porting code from older kernels. If generic_file_write updates it, you can 
remove update in HPFS.

As for inode dirty --- HPFS has its own dirty mechanism different from the 
kernel to avoid deadlocks (writing inode on HPFS needs to lock parent 
directory and you can't do it from ->write_inode method) --- let it be, it 
may be slower, but it's stable.

Mikulas

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-11-03  0:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-31 23:53 ctime/mtime update in affs and hpfs write path Christoph Hellwig
2005-11-01  1:03 ` Roman Zippel
2005-11-01  1:07   ` [PATCH] remove superflous ctime/mtime updates in affs Christoph Hellwig
2005-11-01  1:20     ` Roman Zippel
2005-11-03  0:29 ` ctime/mtime update in affs and hpfs write path Mikulas Patocka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).