From: Namjae Jeon Date: Fri, 25 Jul 2025 01:33:28 +0000 (+0900) Subject: ksmbd: fix corrupted mtime and ctime in smb2_open X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4f8ff9486fd94b9d6a4932f2aefb9f2fc3bd0cf6;p=thirdparty%2Fkernel%2Flinux.git 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 Signed-off-by: Namjae Jeon Signed-off-by: Steve French --- diff --git a/fs/smb/server/vfs.c b/fs/smb/server/vfs.c index 05ac2b14a7b1f..2bd8cc20215a1 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;