aboutsummaryrefslogtreecommitdiff
path: root/fs/exfat
diff options
context:
space:
mode:
authorGravatar Yuezhang Mo <Yuezhang.Mo@sony.com> 2023-10-31 17:52:13 +0800
committerGravatar Namjae Jeon <linkinjeon@kernel.org> 2023-11-03 22:24:07 +0900
commitfc12a722e6b799d1d3c1520dc9ba9aab4fda04bf (patch)
treebf1f616dd9740d62ddb2f6f5a3b6e35089910aab /fs/exfat
parentMerge tag 'mm-nonmm-stable-2023-11-02-14-08' of git://git.kernel.org/pub/scm/... (diff)
downloadlinux-fc12a722e6b799d1d3c1520dc9ba9aab4fda04bf.tar.gz
linux-fc12a722e6b799d1d3c1520dc9ba9aab4fda04bf.tar.bz2
linux-fc12a722e6b799d1d3c1520dc9ba9aab4fda04bf.zip
exfat: fix setting uninitialized time to ctime/atime
An uninitialized time is set to ctime/atime in __exfat_write_inode(). It causes xfstests generic/003 and generic/192 to fail. And since there will be a time gap between setting ctime/atime to the inode and writing back the inode, so ctime/atime should not be set again when writing back the inode. Fixes: 4c72a36edd54 ("exfat: convert to new timestamp accessors") Signed-off-by: Yuezhang Mo <Yuezhang.Mo@sony.com> Reviewed-by: Andy Wu <Andy.Wu@sony.com> Reviewed-by: Aoyama Wataru <wataru.aoyama@sony.com> Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Diffstat (limited to 'fs/exfat')
-rw-r--r--fs/exfat/inode.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/exfat/inode.c b/fs/exfat/inode.c
index 875234179d1f..e7ff58b8e68c 100644
--- a/fs/exfat/inode.c
+++ b/fs/exfat/inode.c
@@ -56,18 +56,18 @@ int __exfat_write_inode(struct inode *inode, int sync)
&ep->dentry.file.create_time,
&ep->dentry.file.create_date,
&ep->dentry.file.create_time_cs);
+ ts = inode_get_mtime(inode);
exfat_set_entry_time(sbi, &ts,
&ep->dentry.file.modify_tz,
&ep->dentry.file.modify_time,
&ep->dentry.file.modify_date,
&ep->dentry.file.modify_time_cs);
- inode_set_mtime_to_ts(inode, ts);
+ ts = inode_get_atime(inode);
exfat_set_entry_time(sbi, &ts,
&ep->dentry.file.access_tz,
&ep->dentry.file.access_time,
&ep->dentry.file.access_date,
NULL);
- inode_set_atime_to_ts(inode, ts);
/* File size should be zero if there is no cluster allocated */
on_disk_size = i_size_read(inode);