On Thu, 3 Jun 2010, Nick Piggin wrote: > Index: linux-2.6/fs/fuse/dir.c > =================================================================== > --- linux-2.6.orig/fs/fuse/dir.c > +++ linux-2.6/fs/fuse/dir.c > @@ -1161,20 +1161,6 @@ static int fuse_dir_fsync(struct file *f > return fuse_fsync_common(file, datasync, 1); > } > > -static bool update_mtime(unsigned ivalid) > -{ > - /* Always update if mtime is explicitly set */ > - if (ivalid & ATTR_MTIME_SET) > - return true; > - > - /* If it's an open(O_TRUNC) or an ftruncate(), don't update */ > - if ((ivalid & ATTR_SIZE) && (ivalid & (ATTR_OPEN | ATTR_FILE))) > - return false; > - > - /* In all other cases update */ > - return true; > -} > - Fuse philosophy is: each operation itself has to update times on files if necessary. So it basically moves the responsibility to update [amc]time from the VFS into the filesystem. This means the only place fuse is interested in ATTR_ATIME or ATTR_MTIME is for the utime* syscalls. It also means that fuse always ignores ATTR_CTIME which is never set explicitly. So I believe the current fuse code is correct. Thanks, Miklos -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html