syzbot


possible deadlock in hfsplus_file_extend (2)

Status: upstream: reported C repro on 2024/11/11 11:50
Subsystems: hfs
[Documentation on labels]
Reported-by: syzbot+4cba2fd444e9a16ae758@syzkaller.appspotmail.com
First crash: 25d, last: 7h47m
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [hfs?] possible deadlock in hfsplus_file_extend (2) 3 (7) 2024/11/12 05:59
Similar bugs (6)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-6.1 possible deadlock in hfsplus_file_extend origin:upstream missing-backport C done 2760 122d 630d 3/3 fixed on 2024/09/08 06:54
linux-5.15 possible deadlock in hfsplus_file_extend (2) 7 8h16m 51d 0/3 upstream: reported on 2024/10/13 10:23
linux-4.14 possible deadlock in hfsplus_file_extend hfsplus C 3 639d 705d 0/1 upstream: reported C repro on 2022/12/29 06:07
linux-5.15 possible deadlock in hfsplus_file_extend missing-backport origin:lts-only C done 3439 106d 632d 3/3 fixed on 2024/09/23 09:27
linux-4.19 possible deadlock in hfsplus_file_extend hfsplus C 258 638d 738d 0/1 upstream: reported C repro on 2022/11/26 10:00
upstream possible deadlock in hfsplus_file_extend hfs C error done 31659 49d 738d 28/28 fixed on 2024/10/21 12:45
Last patch testing requests (4)
Created Duration User Patch Repo Result
2024/11/21 15:35 13m retest repro upstream report log
2024/11/12 05:39 19m eadavis@qq.com patch upstream OK log
2024/11/11 13:11 13m eadavis@qq.com patch upstream report log
2024/11/11 12:35 14m eadavis@qq.com patch upstream report log

Sample crash report:
============================================
WARNING: possible recursive locking detected
6.12.0-syzkaller-09567-g7eef7e306d3c #0 Not tainted
--------------------------------------------
kworker/u4:4/55 is trying to acquire lock:
ffff888036718108 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_extend+0x21b/0x1b70 fs/hfsplus/extents.c:458

but task is already holding lock:
ffff8880367187c8 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_ext_write_extent+0x8e/0x1f0 fs/hfsplus/extents.c:149

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&HFSPLUS_I(inode)->extents_lock);
  lock(&HFSPLUS_I(inode)->extents_lock);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

5 locks held by kworker/u4:4/55:
 #0: ffff888030f0d148 ((wq_completion)writeback){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3204 [inline]
 #0: ffff888030f0d148 ((wq_completion)writeback){+.+.}-{0:0}, at: process_scheduled_works+0x93b/0x1850 kernel/workqueue.c:3310
 #1: ffffc9000103fd00 ((work_completion)(&(&wb->dwork)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3205 [inline]
 #1: ffffc9000103fd00 ((work_completion)(&(&wb->dwork)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x976/0x1850 kernel/workqueue.c:3310
 #2: ffff888034e260e0 (&type->s_umount_key#42){.+.+}-{4:4}, at: super_trylock_shared+0x22/0xf0 fs/super.c:562
 #3: ffff8880367187c8 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_ext_write_extent+0x8e/0x1f0 fs/hfsplus/extents.c:149
 #4: ffff8880362640b0 (&tree->tree_lock/1){+.+.}-{4:4}, at: hfsplus_find_init+0x14a/0x1c0 fs/hfsplus/bfind.c:28

stack backtrace:
CPU: 0 UID: 0 PID: 55 Comm: kworker/u4:4 Not tainted 6.12.0-syzkaller-09567-g7eef7e306d3c #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Workqueue: writeback wb_workfn (flush-7:0)
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
 print_deadlock_bug+0x483/0x620 kernel/locking/lockdep.c:3037
 check_deadlock kernel/locking/lockdep.c:3089 [inline]
 validate_chain+0x15e2/0x5920 kernel/locking/lockdep.c:3891
 __lock_acquire+0x1397/0x2100 kernel/locking/lockdep.c:5226
 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849
 __mutex_lock_common kernel/locking/mutex.c:585 [inline]
 __mutex_lock+0x1ac/0xee0 kernel/locking/mutex.c:735
 hfsplus_file_extend+0x21b/0x1b70 fs/hfsplus/extents.c:458
 hfsplus_bmap_reserve+0x105/0x4e0 fs/hfsplus/btree.c:358
 __hfsplus_ext_write_extent+0x2a4/0x5c0 fs/hfsplus/extents.c:104
 hfsplus_ext_write_extent_locked fs/hfsplus/extents.c:139 [inline]
 hfsplus_ext_write_extent+0x16a/0x1f0 fs/hfsplus/extents.c:150
 hfsplus_write_inode+0x22/0x5e0 fs/hfsplus/super.c:155
 write_inode fs/fs-writeback.c:1525 [inline]
 __writeback_single_inode+0x711/0x10d0 fs/fs-writeback.c:1745
 writeback_sb_inodes+0x80c/0x1370 fs/fs-writeback.c:1976
 __writeback_inodes_wb+0x11b/0x260 fs/fs-writeback.c:2047
 wb_writeback+0x427/0xbc0 fs/fs-writeback.c:2158
 wb_check_background_flush fs/fs-writeback.c:2228 [inline]
 wb_do_writeback fs/fs-writeback.c:2316 [inline]
 wb_workfn+0xc58/0x1090 fs/fs-writeback.c:2343
 process_one_work kernel/workqueue.c:3229 [inline]
 process_scheduled_works+0xa63/0x1850 kernel/workqueue.c:3310
 worker_thread+0x870/0xd30 kernel/workqueue.c:3391
 kthread+0x2f0/0x390 kernel/kthread.c:389
 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 </TASK>

Crashes (21):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/11/26 12:39 upstream 7eef7e306d3c e9a9a9f2 .config console log report syz / log C [disk image (non-bootable)] [vmlinux] [kernel image] [mounted in repro] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/11/07 15:33 upstream ff7afaeca1a1 867e44df .config console log report syz / log C [disk image (non-bootable)] [vmlinux] [kernel image] [mounted in repro] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/11/30 17:44 upstream 2ba9f676d0a2 68914665 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root possible deadlock in hfsplus_file_extend
2024/12/03 04:00 upstream cdd30ebb1b9f bb326ffb .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/12/02 21:39 upstream e70140ba0d2b b499ea68 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/12/02 21:17 upstream e70140ba0d2b b499ea68 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/12/02 18:55 upstream e70140ba0d2b b499ea68 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/12/02 17:12 upstream e70140ba0d2b b499ea68 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/12/02 16:10 upstream e70140ba0d2b b499ea68 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/12/02 16:10 upstream e70140ba0d2b b499ea68 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/12/02 09:32 upstream f788b5ef1ca9 68914665 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/12/02 09:25 upstream f788b5ef1ca9 68914665 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/12/01 01:56 upstream d8b78066f4c9 68914665 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/11/30 05:32 upstream 2ba9f676d0a2 68914665 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/11/30 05:28 upstream 2ba9f676d0a2 68914665 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/11/30 01:03 upstream 7af08b57bcb9 b5d2be89 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/11/29 21:11 upstream 7af08b57bcb9 b5d2be89 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/11/07 11:48 upstream 7758b206117d df3dc63b .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/11/07 11:48 upstream 7758b206117d df3dc63b .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in hfsplus_file_extend
2024/11/30 05:19 linux-next f486c8aa16b8 68914665 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfsplus_file_extend
2024/11/30 05:19 linux-next f486c8aa16b8 68914665 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfsplus_file_extend
* Struck through repros no longer work on HEAD.