mbox series

[0/2] fs: fixes for multigrain ctime code

Message ID 20230907-ctime-fixes-v1-0-3b74c970d934@kernel.org (mailing list archive)
Headers show
Series fs: fixes for multigrain ctime code | expand

Message

Jeff Layton Sept. 7, 2023, 4:33 p.m. UTC
The kernel test robot noted some test failures with the LTP mount03 test
on tmpfs. From the test output, it looked like the atime had gone
backward.

One way this could happen would be for tmpfs to get a new inode from the
slab that had a ctime that appeared to be in the future.
inode_update_ctime_current would just return that time and then the
mtime and atime would be set to the same value. Then later, the atime
gets overwritten by "now" which is still lower than the garbage ctime
value.

I've not been able to reproduce this on my test rig, so I'm not certain
this fixes the problem that was reported. I'm hopeful though, so I've
left the KTR tags in place.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Jeff Layton (2):
      fs: initialize inode->__i_ctime to the epoch
      fs: don't update the atime if existing atime is newer than "now"

 fs/inode.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
---
base-commit: 7ba2090ca64ea1aa435744884124387db1fac70f
change-id: 20230907-ctime-fixes-ec6319ca01be

Best regards,

Comments

Christian Brauner Sept. 8, 2023, 12:10 p.m. UTC | #1
On Thu, 07 Sep 2023 12:33:46 -0400, Jeff Layton wrote:
> The kernel test robot noted some test failures with the LTP mount03 test
> on tmpfs. From the test output, it looked like the atime had gone
> backward.
> 
> One way this could happen would be for tmpfs to get a new inode from the
> slab that had a ctime that appeared to be in the future.
> inode_update_ctime_current would just return that time and then the
> mtime and atime would be set to the same value. Then later, the atime
> gets overwritten by "now" which is still lower than the garbage ctime
> value.
> 
> [...]

Picked up so we can get some -next testing. Hopefully that test thing can
verify the fix.

---

Applied to the vfs.ctime branch of the vfs/vfs.git tree.
Patches in the vfs.ctime branch should appear in linux-next soon.

Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.

It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.

Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs.ctime

[1/2] fs: initialize inode->__i_ctime to the epoch
      https://git.kernel.org/vfs/vfs/c/7651a330dcbd
[2/2] fs: don't update the atime if existing atime is newer than "now"
      https://git.kernel.org/vfs/vfs/c/4c950d80d98d