syzbot


KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (11)

Status: moderation: reported on 2025/05/25 01:19
Subsystems: exfat
[Documentation on labels]
Reported-by: syzbot+090227ea7a5578fc6b9c@syzkaller.appspotmail.com
First crash: 9h44m, last: 9h44m
Similar bugs (10)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (8) exfat 1 455d 455d 0/28 auto-obsoleted due to no activity on 2024/03/30 16:35
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (4) ext4 5 1617d 1629d 0/28 auto-closed as invalid on 2021/01/23 11:44
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers exfat 8 1942d 2011d 0/28 auto-closed as invalid on 2020/04/08 22:27
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (3) exfat 10 1703d 1795d 0/28 auto-closed as invalid on 2020/10/29 18:32
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (7) exfat 42 505d 533d 0/28 auto-obsoleted due to no activity on 2024/02/03 09:04
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (2) exfat 1 1832d 1832d 0/28 closed as invalid on 2020/06/18 14:13
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (9) exfat 44 219d 347d 0/28 auto-obsoleted due to no activity on 2024/11/21 22:27
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (6) exfat 174 626d 1267d 0/28 auto-obsoleted due to no activity on 2023/10/11 19:19
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (5) exfat 32 1307d 1535d 0/28 auto-closed as invalid on 2021/11/29 11:14
upstream KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers (10) exfat 57 63d 148d 0/28 auto-obsoleted due to no activity on 2025/05/10 19:27

Sample crash report:
==================================================================
BUG: KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers

write to 0xffff888106fca330 of 8 bytes by task 10294 on cpu 0:
 __remove_assoc_queue fs/buffer.c:523 [inline]
 fsync_buffers_list fs/buffer.c:796 [inline]
 sync_mapping_buffers+0x163/0x7d0 fs/buffer.c:584
 fat_file_fsync+0xaa/0x100 fs/fat/file.c:195
 vfs_fsync_range+0x10a/0x130 fs/sync.c:187
 generic_write_sync include/linux/fs.h:2976 [inline]
 generic_file_write_iter+0x1b8/0x2f0 mm/filemap.c:4250
 iter_file_splice_write+0x5ef/0x970 fs/splice.c:738
 do_splice_from fs/splice.c:935 [inline]
 direct_splice_actor+0x153/0x2a0 fs/splice.c:1158
 splice_direct_to_actor+0x30f/0x680 fs/splice.c:1102
 do_splice_direct_actor fs/splice.c:1201 [inline]
 do_splice_direct+0xda/0x150 fs/splice.c:1227
 do_sendfile+0x380/0x640 fs/read_write.c:1368
 __do_sys_sendfile64 fs/read_write.c:1429 [inline]
 __se_sys_sendfile64 fs/read_write.c:1415 [inline]
 __x64_sys_sendfile64+0x105/0x150 fs/read_write.c:1415
 x64_sys_call+0xb39/0x2fb0 arch/x86/include/generated/asm/syscalls_64.h:41
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd0/0x1a0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffff888106fca330 of 8 bytes by task 10301 on cpu 1:
 mark_buffer_dirty_inode+0x95/0x1c0 fs/buffer.c:689
 fat32_ent_put+0x73/0x90 fs/fat/fatent.c:192
 fat_ent_write+0x69/0xe0 fs/fat/fatent.c:417
 fat_chain_add+0x15b/0x3f0 fs/fat/misc.c:136
 fat_add_cluster fs/fat/inode.c:112 [inline]
 __fat_get_block fs/fat/inode.c:154 [inline]
 fat_get_block+0x46c/0x5e0 fs/fat/inode.c:189
 __block_write_begin_int+0x41c/0xf70 fs/buffer.c:2151
 block_write_begin fs/buffer.c:2262 [inline]
 cont_write_begin+0x5a3/0x8e0 fs/buffer.c:2601
 fat_write_begin+0x4f/0xe0 fs/fat/inode.c:228
 generic_perform_write+0x181/0x490 mm/filemap.c:4103
 __generic_file_write_iter+0x9e/0x120 mm/filemap.c:4220
 generic_file_write_iter+0x8d/0x2f0 mm/filemap.c:4246
 new_sync_write fs/read_write.c:591 [inline]
 vfs_write+0x4a0/0x8d0 fs/read_write.c:684
 ksys_write+0xda/0x1a0 fs/read_write.c:736
 __do_sys_write fs/read_write.c:747 [inline]
 __se_sys_write fs/read_write.c:744 [inline]
 __x64_sys_write+0x40/0x50 fs/read_write.c:744
 x64_sys_call+0x2cdd/0x2fb0 arch/x86/include/generated/asm/syscalls_64.h:2
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd0/0x1a0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0xffff888106db7508 -> 0x0000000000000000

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 10301 Comm: syz.6.2145 Not tainted 6.15.0-rc7-syzkaller-00144-gb1427432d3b6 #0 PREEMPT(voluntary) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/05/25 01:18 upstream b1427432d3b6 ed351ea7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in mark_buffer_dirty_inode / sync_mapping_buffers
* Struck through repros no longer work on HEAD.