mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
f2fs: fix to update i_ctime in __f2fs_setxattr()
[ Upstream commit 8874ad7dae ]
generic/728 - output mismatch (see /media/fstests/results//generic/728.out.bad)
--- tests/generic/728.out 2023-07-19 07:10:48.362711407 +0000
+++ /media/fstests/results//generic/728.out.bad 2023-07-19 08:39:57.000000000 +0000
QA output created by 728
+Expected ctime to change after setxattr.
+Expected ctime to change after removexattr.
Silence is golden
...
(Run 'diff -u /media/fstests/tests/generic/728.out /media/fstests/results//generic/728.out.bad' to see the entire diff)
generic/729 1s
It needs to update i_ctime after {set,remove}xattr, fix it.
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Stable-dep-of: aaf8c0b9ae04 ("f2fs: reduce expensive checkpoint trigger frequency")
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
84a563d136
commit
fb94458dba
@@ -772,17 +772,17 @@ retry:
|
|||||||
if (index == F2FS_XATTR_INDEX_ENCRYPTION &&
|
if (index == F2FS_XATTR_INDEX_ENCRYPTION &&
|
||||||
!strcmp(name, F2FS_XATTR_NAME_ENCRYPTION_CONTEXT))
|
!strcmp(name, F2FS_XATTR_NAME_ENCRYPTION_CONTEXT))
|
||||||
f2fs_set_encrypted_inode(inode);
|
f2fs_set_encrypted_inode(inode);
|
||||||
f2fs_mark_inode_dirty_sync(inode, true);
|
|
||||||
if (!error && S_ISDIR(inode->i_mode))
|
if (!error && S_ISDIR(inode->i_mode))
|
||||||
set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_CP);
|
set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_CP);
|
||||||
|
|
||||||
same:
|
same:
|
||||||
if (is_inode_flag_set(inode, FI_ACL_MODE)) {
|
if (is_inode_flag_set(inode, FI_ACL_MODE)) {
|
||||||
inode->i_mode = F2FS_I(inode)->i_acl_mode;
|
inode->i_mode = F2FS_I(inode)->i_acl_mode;
|
||||||
inode->i_ctime = current_time(inode);
|
|
||||||
clear_inode_flag(inode, FI_ACL_MODE);
|
clear_inode_flag(inode, FI_ACL_MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inode->i_ctime = current_time(inode);
|
||||||
|
f2fs_mark_inode_dirty_sync(inode, true);
|
||||||
exit:
|
exit:
|
||||||
kfree(base_addr);
|
kfree(base_addr);
|
||||||
return error;
|
return error;
|
||||||
|
|||||||
Reference in New Issue
Block a user