[GIT PULL] timestamp fixes

From: Christian Brauner
Date: Mon Sep 18 2023 - 07:55:42 EST


Hey Linus,

/* Summary */
This contains a few fixes for the multi-grain timestamps work for this cycle:

* Only update the atime if "now" is later than the current value. This
can happen when the atime gets updated with a fine-grained timestamp
and then later gets updated using a coarse-grained timestamp.
* Make sure setattr_copy() handles multi-grained timestamps.
* Always initialize the __i_ctime field during allocation otherwise
inode_set_ctime_current() may skip initializing __i_ctime because the
random value in there might be in the future.
* Fix overlayfs to always set ctime when it sets atime and mtime.

/* Testing */
clang: Ubuntu clang version 15.0.7
gcc: (Ubuntu 12.2.0-3ubuntu1) 12.2.0

All patches are based on v6.6-rc1 and have been sitting in linux-next.
No build failures or warnings were observed. All old and new tests in
selftests, and LTP pass without regressions.

/* Conflicts */
At the time of creating this PR no merge conflicts were reported from
linux-next and no merge conflicts showed up doing a test-merge with
current mainline.

The following changes since commit 0bb80ecc33a8fb5a682236443c1e740d5c917d1d:

Linux 6.6-rc1 (2023-09-10 16:28:41 -0700)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/v6.6-rc2.vfs.ctime

for you to fetch changes up to f8edd33686154b9165457c95e2ed5943e916781e:

overlayfs: set ctime when setting mtime and atime (2023-09-14 10:24:36 +0200)

Please consider pulling these changes from the signed v6.6-rc2.vfs.ctime tag.

Thanks!
Christian

----------------------------------------------------------------
v6.6-rc2.vfs.ctime

----------------------------------------------------------------
Jeff Layton (4):
fs: have setattr_copy handle multigrain timestamps appropriately
fs: initialize inode->__i_ctime to the epoch
fs: don't update the atime if existing atime is newer than "now"
overlayfs: set ctime when setting mtime and atime

fs/attr.c | 52 ++++++++++++++++++++++++++++++++++++++++++++------
fs/inode.c | 6 ++++--
fs/overlayfs/copy_up.c | 2 +-
3 files changed, 51 insertions(+), 9 deletions(-)