diff options
author | Christoph Hellwig <hch@infradead.org> | 2009-12-23 16:09:13 +0000 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2010-01-10 12:21:58 -0600 |
commit | d6d59bada372bcf8bd36c3bbc71c485c29dd2a4b (patch) | |
tree | 140a4625597ffac953ce1d0dbbfed7caa436e053 /fs/xfs/xfs_inode.c | |
parent | ea9a48881e093a41a79305fb1545ca0794b203dc (diff) |
xfs: fix timestamp handling in xfs_setattr
We currently have some rather odd code in xfs_setattr for
updating the a/c/mtime timestamps:
- first we do a non-transaction update if all three are updated
together
- second we implicitly update the ctime for various changes
instead of relying on the ATTR_CTIME flag
- third we set the timestamps to the current time instead of the
arguments in the iattr structure in many cases.
This patch makes sure we update it in a consistent way:
- always transactional
- ctime is only updated if ATTR_CTIME is set or we do a size
update, which is a special case
- always to the times passed in from the caller instead of the
current time
The only non-size caller of xfs_setattr that doesn't come from
the VFS is updated to set ATTR_CTIME and pass in a valid ctime
value.
Reported-by: Eric Blake <ebb9@byu.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_inode.c')
0 files changed, 0 insertions, 0 deletions