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