[moderation] [fs?] KCSAN: data-race in file_update_time_flags / inode_set_ctime_to_ts

0 views
Skip to first unread message

syzbot

unread,
Dec 7, 2025, 3:08:30 PM (20 hours ago) Dec 7
to syzkaller-upst...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 37bb2e7217b0 Merge tag 'staging-6.19-rc1' of git://git.ker..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1103f21a580000
kernel config: https://syzkaller.appspot.com/x/.config?x=c3201432211be40f
dashboard link: https://syzkaller.appspot.com/bug?extid=e4fecf4e46b966b9f865
compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
CC: [bra...@kernel.org ja...@suse.cz linux-...@vger.kernel.org linux-...@vger.kernel.org vi...@zeniv.linux.org.uk]

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/7443ee967edf/disk-37bb2e72.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/5848b2fa4c9b/vmlinux-37bb2e72.xz
kernel image: https://storage.googleapis.com/syzbot-assets/214bdfdbc4d2/bzImage-37bb2e72.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+e4fecf...@syzkaller.appspotmail.com

netlink: 1004 bytes leftover after parsing attributes in process `syz.0.2800'.
==================================================================
BUG: KCSAN: data-race in file_update_time_flags / inode_set_ctime_to_ts

write to 0xffff8881004bb888 of 4 bytes by task 12023 on cpu 0:
inode_set_ctime_to_ts+0x84/0x170 fs/inode.c:2745
inode_set_ctime_current+0x1cd/0x760 fs/inode.c:2808
inode_update_timestamps+0x84/0x270 fs/inode.c:2109
generic_update_time fs/inode.c:2148 [inline]
inode_update_time fs/inode.c:2168 [inline]
file_update_time_flags+0x26c/0x310 fs/inode.c:2395
file_update_time+0x17/0x20 fs/inode.c:2416
fault_dirty_shared_page+0xd9/0x390 mm/memory.c:3570
do_shared_fault mm/memory.c:5847 [inline]
do_fault mm/memory.c:5893 [inline]
do_pte_missing mm/memory.c:4401 [inline]
handle_pte_fault mm/memory.c:6273 [inline]
__handle_mm_fault mm/memory.c:6411 [inline]
handle_mm_fault+0x1690/0x2c60 mm/memory.c:6580
faultin_page mm/gup.c:1126 [inline]
__get_user_pages+0x1024/0x1ed0 mm/gup.c:1428
__get_user_pages_locked mm/gup.c:1692 [inline]
__gup_longterm_locked+0x8ef/0xe60 mm/gup.c:2476
pin_user_pages_remote+0x7e/0xb0 mm/gup.c:3363
process_vm_rw_single_vec mm/process_vm_access.c:106 [inline]
process_vm_rw_core mm/process_vm_access.c:216 [inline]
process_vm_rw+0x484/0x960 mm/process_vm_access.c:284
__do_sys_process_vm_writev mm/process_vm_access.c:304 [inline]
__se_sys_process_vm_writev mm/process_vm_access.c:299 [inline]
__x64_sys_process_vm_writev+0x78/0x90 mm/process_vm_access.c:299
x64_sys_call+0x27ef/0x3000 arch/x86/include/generated/asm/syscalls_64.h:312
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xd8/0x2a0 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffff8881004bb888 of 4 bytes by task 12027 on cpu 1:
inode_get_ctime_nsec include/linux/fs.h:1688 [inline]
inode_get_ctime include/linux/fs.h:1694 [inline]
file_update_time_flags+0x112/0x310 fs/inode.c:2381
file_update_time+0x17/0x20 fs/inode.c:2416
fault_dirty_shared_page+0xd9/0x390 mm/memory.c:3570
do_shared_fault mm/memory.c:5847 [inline]
do_fault mm/memory.c:5893 [inline]
do_pte_missing mm/memory.c:4401 [inline]
handle_pte_fault mm/memory.c:6273 [inline]
__handle_mm_fault mm/memory.c:6411 [inline]
handle_mm_fault+0x1690/0x2c60 mm/memory.c:6580
faultin_page mm/gup.c:1126 [inline]
__get_user_pages+0x1024/0x1ed0 mm/gup.c:1428
__get_user_pages_locked mm/gup.c:1692 [inline]
__gup_longterm_locked+0x2fb/0xe60 mm/gup.c:2481
gup_fast_fallback+0x1ee/0x1480 mm/gup.c:3220
pin_user_pages_fast+0x5f/0x90 mm/gup.c:3326
io_pin_pages+0xba/0x170 io_uring/memmap.c:63
io_sqe_buffer_register+0x184/0x14c0 io_uring/rsrc.c:801
io_sqe_buffers_register+0x2b1/0x540 io_uring/rsrc.c:916
__io_uring_register io_uring/register.c:637 [inline]
__do_sys_io_uring_register io_uring/register.c:919 [inline]
__se_sys_io_uring_register+0x9ef/0xf20 io_uring/register.c:896
__x64_sys_io_uring_register+0x55/0x70 io_uring/register.c:896
x64_sys_call+0x27ad/0x3000 arch/x86/include/generated/asm/syscalls_64.h:428
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xd8/0x2a0 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x354d3db4 -> 0x367e6ab4

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 12027 Comm: syz.0.2800 Not tainted syzkaller #0 PREEMPT(voluntary)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
==================================================================


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup
Reply all
Reply to author
Forward
0 new messages