Christoph Hellwig
d6d59bada3
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>
2010-01-10 12:21:58 -06:00
..
2010-01-10 12:21:58 -06:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-06-10 17:07:47 +02:00
2009-12-14 23:08:16 -06:00
2009-12-16 12:16:49 -05:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2008-10-30 17:14:34 +11:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-06-10 17:07:47 +02:00
2009-12-14 23:08:16 -06:00
2009-01-09 15:46:44 +11:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2008-08-13 15:41:12 +10:00
2009-01-09 15:53:54 +11:00
2009-12-14 23:08:16 -06:00
2009-12-16 13:41:20 -06:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2008-10-30 16:58:50 +11:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-08-31 14:46:20 -05:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2008-12-02 17:08:01 +11:00
2009-03-29 09:51:14 +02:00
2009-12-14 23:08:16 -06:00
2008-07-28 16:58:36 +10:00
2009-03-29 09:55:42 +02:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2008-12-01 11:37:35 +11:00
2009-12-14 23:08:16 -06:00
2008-07-28 16:58:40 +10:00
2008-08-23 12:14:12 -07:00
2008-10-30 17:53:24 +11:00
2008-12-22 18:02:01 +11:00
2008-12-22 18:02:01 +11:00
2008-10-30 17:39:58 +11:00
2009-01-22 14:07:31 +11:00
2009-12-14 23:08:16 -06:00
2009-12-11 15:11:22 -06:00
2009-09-21 15:14:54 +02:00
2009-12-14 23:08:16 -06:00
2009-01-09 16:54:42 -08:00
2009-03-29 09:55:42 +02:00
2009-02-09 08:37:14 +01:00
2009-12-11 15:11:22 -06:00
2009-09-01 12:45:39 -05:00
2009-12-17 11:03:25 -05:00
2009-12-14 23:08:16 -06:00
2009-12-16 13:41:20 -06:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-08-31 14:46:22 -05:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-10-08 12:00:03 -05:00
2009-08-31 14:46:20 -05:00
2009-12-14 23:08:16 -06:00
2009-12-15 09:12:43 -08:00
2009-12-16 13:41:19 -06:00
2009-03-16 08:19:29 +01:00
2009-12-14 23:08:16 -06:00
2009-12-11 15:11:23 -06:00
2009-08-31 14:46:20 -05:00
2009-08-31 14:46:20 -05:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-12-14 23:08:16 -06:00
2009-03-29 09:55:42 +02:00
2009-12-14 23:08:16 -06:00
2009-12-11 15:11:22 -06:00
2009-01-19 14:45:55 +11:00
2009-11-17 10:26:49 -06:00
2009-12-14 23:08:16 -06:00
2009-09-01 12:46:16 -05:00
2009-03-29 09:55:42 +02:00
2008-10-30 17:39:58 +11:00
2009-02-09 08:37:14 +01:00
2009-12-11 15:11:20 -06:00
2009-12-14 23:08:16 -06:00
2009-02-09 08:37:39 +01:00
2009-06-08 15:33:32 +02:00
2008-08-13 16:13:45 +10:00
2010-01-10 12:21:58 -06:00
2009-12-11 15:11:19 -06:00
2009-12-14 23:08:16 -06:00