A bug was born when mmap patch was applied.
The timestamp(mtime) is updated in read systemcall.

unionfs /dev/shm/u unionfs 
rw,dirs=/dev/shm/rw=rw:/dev/shm/ro=ro,debug=0,delete=whiteout,copyup=preserve 0 0
+ cd /dev/shm/u
+ touch -d yesterday a
+ ls -l a
-rw-r--r--  1 jro jro 0 Mar 12 07:00 a
+ cat a
+ ls -l a
-rw-r--r--  1 jro jro 0 Mar 13 07:00 a

Junjiro Okajima


--- unionfs-20060308-2131/file.c        10 Mar 2006 13:47:41 -0000      1.1
+++ unionfs-20060308-2131/file.c        13 Mar 2006 21:25:09 -0000      1.3
@@ -86,8 +86,6 @@ ssize_t __unionfs_read(struct file * fil
 
        err = hidden_file->f_op->read(hidden_file, buf, count, &pos);
        *ppos = pos;
-       if (err >= 0)
-               file_update_time(ftohf(file));
 
       out:
        fist_print_file("leaving __unionfs_read()", file);
@@ -108,11 +106,11 @@ ssize_t unionfs_read(struct file * file,
 
 #ifdef UNIONFS_MMAP
        err = generic_file_read(file, buf, count, ppos);
+       if (err >= 0)
+               file_accessed(ftohf(file));
 #else
        err = __unionfs_read(file, buf, count, ppos);
 #endif
-       if (err >= 0)
-               file_update_time(ftohf(file));
 
       out:
 
_______________________________________________
unionfs mailing list
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs

Reply via email to