diff options
| author | Yuezhang Mo <[email protected]> | 2023-10-31 09:36:39 +0000 |
|---|---|---|
| committer | Namjae Jeon <[email protected]> | 2023-11-03 13:24:11 +0000 |
| commit | 1373ca10ec04afba9199de1fab01fde91338a78b (patch) | |
| tree | 002c00fe274b4d33dd54eb6423b8a22dd107c562 | |
| parent | exfat: fix setting uninitialized time to ctime/atime (diff) | |
| download | kernel-1373ca10ec04afba9199de1fab01fde91338a78b.tar.gz kernel-1373ca10ec04afba9199de1fab01fde91338a78b.zip | |
exfat: fix ctime is not updated
Commit 4c72a36edd54 ("exfat: convert to new timestamp accessors")
removed attr_copy() from exfat_set_attr().
It causes xfstests generic/221 to fail. In xfstests generic/221,
it tests ctime should be updated even if futimens() update atime
only. But in this case, ctime will not be updated if attr_copy()
is removed.
attr_copy() may also update other attributes, and removing it may
cause other bugs, so this commit restores to call attr_copy() in
exfat_set_attr().
Fixes: 4c72a36edd54 ("exfat: convert to new timestamp accessors")
Signed-off-by: Yuezhang Mo <[email protected]>
Reviewed-by: Andy Wu <[email protected]>
Reviewed-by: Aoyama Wataru <[email protected]>
Reviewed-by: Sungjong Seo <[email protected]>
Signed-off-by: Namjae Jeon <[email protected]>
| -rw-r--r-- | fs/exfat/file.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/exfat/file.c b/fs/exfat/file.c index 02c4e2937879..bfdfafe00993 100644 --- a/fs/exfat/file.c +++ b/fs/exfat/file.c @@ -295,6 +295,7 @@ int exfat_setattr(struct mnt_idmap *idmap, struct dentry *dentry, if (attr->ia_valid & ATTR_SIZE) inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); + setattr_copy(&nop_mnt_idmap, inode, attr); exfat_truncate_inode_atime(inode); if (attr->ia_valid & ATTR_SIZE) { |
