diff options
author | Namjae Jeon <linkinjeon@kernel.org> | 2025-07-25 10:33:28 +0900 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2025-07-24 22:55:29 -0500 |
commit | 4f8ff9486fd94b9d6a4932f2aefb9f2fc3bd0cf6 (patch) | |
tree | 10ae1fec46e5d923e5885a49aa1f8f25f903f4aa /fs | |
parent | 44a3059c4c8cc635a1fb2afd692d0730ca1ba4b6 (diff) |
ksmbd: fix corrupted mtime and ctime in smb2_open
If STATX_BASIC_STATS flags are not given as an argument to vfs_getattr,
It can not get ctime and mtime in kstat.
This causes a problem showing mtime and ctime outdated from cifs.ko.
File: /xfstest.test/foo
Size: 4096 Blocks: 8 IO Block: 1048576 regular file
Device: 0,65 Inode: 2033391 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:cifs_t:s0
Access: 2025-07-23 22:15:30.136051900 +0100
Modify: 1970-01-01 01:00:00.000000000 +0100
Change: 1970-01-01 01:00:00.000000000 +0100
Birth: 2025-07-23 22:15:30.136051900 +0100
Cc: stable@vger.kernel.org
Reported-by: David Howells <dhowells@redhat.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/smb/server/vfs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/smb/server/vfs.c b/fs/smb/server/vfs.c index 05ac2b14a7b1..2bd8cc20215a 100644 --- a/fs/smb/server/vfs.c +++ b/fs/smb/server/vfs.c @@ -553,7 +553,8 @@ int ksmbd_vfs_getattr(const struct path *path, struct kstat *stat) { int err; - err = vfs_getattr(path, stat, STATX_BTIME, AT_STATX_SYNC_AS_STAT); + err = vfs_getattr(path, stat, STATX_BASIC_STATS | STATX_BTIME, + AT_STATX_SYNC_AS_STAT); if (err) pr_err("getattr failed, err %d\n", err); return err; |