ocfs2: handle file attributes issue for reflink.
authorTao Ma <tao.ma@oracle.com>
Tue, 18 Aug 2009 03:40:59 +0000 (11:40 +0800)
committerJoel Becker <joel.becker@oracle.com>
Wed, 23 Sep 2009 03:09:39 +0000 (20:09 -0700)
commita9063ab9a3827483007124bdb6f9877f0ab4c3f5
tree78afcc391daf9d66df5bf34b207aa8e9c53ca7d6
parent110a045aca62f6f564e3b68f89af2a3a5a6ecff2
ocfs2: handle file attributes issue for reflink.

A reflink creates a snapshot of a file, that means the attributes
must be identical except for three exceptions - nlink, ino, and ctime.

As for time changes, Here is a brief description:

1. Source file:
   1) atime: Ignore. Let the lazy atime code handle that.
   2) mtime: don't touch.
   3) ctime: If we change the tree (adding REFCOUNTED to at least one
             extent), update it.
2. Destination file:
   1) atime: ignore.
   2) mtime: we want it to appear identical to the source.
   3) ctime: update.

The idea here is that an ls -l will show the same time for the
src and target - it shows mtime.  Backup software like rsync and tar
will treat the new file correctly too.

Signed-off-by: Tao Ma <tao.ma@oracle.com>
fs/ocfs2/refcounttree.c