syzbot


possible deadlock in hfsplus_file_extend

Status: upstream: reported C repro on 2022/11/26 08:07
Labels: hfs (incorrect?)
Reported-by: syzbot+325b61d3c9a17729454b@syzkaller.appspotmail.com
First crash: 196d, last: 24m

Cause bisection: failed (error log, bisect log)
Discussions (3)
Title Replies (including bot) Last reply
[syzbot] Monthly hfs report (May 2023) 0 (1) 2023/05/30 08:18
[syzbot] Monthly hfs report (Apr 2023) 0 (1) 2023/04/27 13:32
[syzbot] possible deadlock in hfsplus_file_extend 0 (2) 2022/12/02 08:18
Similar bugs (4)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-6.1 possible deadlock in hfsplus_file_extend 91 5h37m 89d 0/3 upstream: reported on 2023/03/13 14:24
linux-4.14 possible deadlock in hfsplus_file_extend hfsplus C 3 97d 163d 0/1 upstream: reported C repro on 2022/12/29 06:07
linux-5.15 possible deadlock in hfsplus_file_extend 111 2d17h 91d 0/3 upstream: reported on 2023/03/11 17:12
linux-4.19 possible deadlock in hfsplus_file_extend hfsplus C 258 96d 196d 0/1 upstream: reported C repro on 2022/11/26 10:00

Sample crash report:
======================================================
WARNING: possible circular locking dependency detected
6.3.0-syzkaller-11025-g89d77f71f493 #0 Not tainted
------------------------------------------------------
syz-executor104/5000 is trying to acquire lock:
ffff88807a8707c8 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{3:3}, at: hfsplus_file_extend+0x1d6/0x1b10 fs/hfsplus/extents.c:457

but task is already holding lock:
ffff88807c4840b0 (&tree->tree_lock){+.+.}-{3:3}, at: hfsplus_find_init+0x14a/0x1c0

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&tree->tree_lock){+.+.}-{3:3}:
       lock_acquire+0x1e3/0x520 kernel/locking/lockdep.c:5691
       __mutex_lock_common+0x1d8/0x2530 kernel/locking/mutex.c:603
       __mutex_lock kernel/locking/mutex.c:747 [inline]
       mutex_lock_nested+0x1b/0x20 kernel/locking/mutex.c:799
       hfsplus_file_truncate+0x811/0xb40 fs/hfsplus/extents.c:595
       hfsplus_setattr+0x1bd/0x280 fs/hfsplus/inode.c:269
       notify_change+0xc8b/0xf40 fs/attr.c:483
       do_truncate+0x220/0x300 fs/open.c:66
       handle_truncate fs/namei.c:3219 [inline]
       do_open fs/namei.c:3564 [inline]
       path_openat+0x294e/0x3170 fs/namei.c:3715
       do_filp_open+0x234/0x490 fs/namei.c:3742
       do_sys_openat2+0x13f/0x500 fs/open.c:1356
       do_sys_open fs/open.c:1372 [inline]
       __do_sys_creat fs/open.c:1448 [inline]
       __se_sys_creat fs/open.c:1442 [inline]
       __x64_sys_creat+0x123/0x160 fs/open.c:1442
       do_syscall_x64 arch/x86/entry/common.c:50 [inline]
       do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
       entry_SYSCALL_64_after_hwframe+0x63/0xcd

-> #0 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{3:3}:
       check_prev_add kernel/locking/lockdep.c:3108 [inline]
       check_prevs_add kernel/locking/lockdep.c:3227 [inline]
       validate_chain+0x166b/0x58e0 kernel/locking/lockdep.c:3842
       __lock_acquire+0x1295/0x2000 kernel/locking/lockdep.c:5074
       lock_acquire+0x1e3/0x520 kernel/locking/lockdep.c:5691
       __mutex_lock_common+0x1d8/0x2530 kernel/locking/mutex.c:603
       __mutex_lock kernel/locking/mutex.c:747 [inline]
       mutex_lock_nested+0x1b/0x20 kernel/locking/mutex.c:799
       hfsplus_file_extend+0x1d6/0x1b10 fs/hfsplus/extents.c:457
       hfsplus_bmap_reserve+0x105/0x4e0 fs/hfsplus/btree.c:358
       hfsplus_rename_cat+0x1d3/0x1090 fs/hfsplus/catalog.c:456
       hfsplus_unlink+0x308/0x7f0 fs/hfsplus/dir.c:376
       vfs_unlink+0x35d/0x5f0 fs/namei.c:4250
       do_unlinkat+0x4a1/0x940 fs/namei.c:4316
       do_coredump+0x2148/0x2980 fs/coredump.c:673
       get_signal+0x145e/0x17e0 kernel/signal.c:2860
       arch_do_signal_or_restart+0x91/0x670 arch/x86/kernel/signal.c:306
       exit_to_user_mode_loop+0x6a/0x100 kernel/entry/common.c:168
       exit_to_user_mode_prepare+0xb1/0x140 kernel/entry/common.c:204
       irqentry_exit_to_user_mode+0x9/0x40 kernel/entry/common.c:310
       exc_page_fault+0x71e/0x910 arch/x86/mm/fault.c:1593
       asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:570

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&tree->tree_lock);
                               lock(&HFSPLUS_I(inode)->extents_lock);
                               lock(&tree->tree_lock);
  lock(&HFSPLUS_I(inode)->extents_lock);

 *** DEADLOCK ***

5 locks held by syz-executor104/5000:
 #0: ffff88807c9f6460 (sb_writers#9){.+.+}-{0:0}, at: mnt_want_write+0x3f/0x90 fs/namespace.c:394
 #1: ffff888076498300 (&type->i_mutex_dir_key#6/1){+.+.}-{3:3}, at: inode_lock_nested include/linux/fs.h:796 [inline]
 #1: ffff888076498300 (&type->i_mutex_dir_key#6/1){+.+.}-{3:3}, at: do_unlinkat+0x264/0x940 fs/namei.c:4301
 #2: ffff888076499e00 (&sb->s_type->i_mutex_key#16){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:761 [inline]
 #2: ffff888076499e00 (&sb->s_type->i_mutex_key#16){+.+.}-{3:3}, at: vfs_unlink+0xe4/0x5f0 fs/namei.c:4239
 #3: ffff88814aafb198 (&sbi->vh_mutex){+.+.}-{3:3}, at: hfsplus_unlink+0x161/0x7f0 fs/hfsplus/dir.c:370
 #4: ffff88807c4840b0 (&tree->tree_lock){+.+.}-{3:3}, at: hfsplus_find_init+0x14a/0x1c0

stack backtrace:
CPU: 1 PID: 5000 Comm: syz-executor104 Not tainted 6.3.0-syzkaller-11025-g89d77f71f493 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/14/2023
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1e7/0x2d0 lib/dump_stack.c:106
 check_noncircular+0x2fe/0x3b0 kernel/locking/lockdep.c:2188
 check_prev_add kernel/locking/lockdep.c:3108 [inline]
 check_prevs_add kernel/locking/lockdep.c:3227 [inline]
 validate_chain+0x166b/0x58e0 kernel/locking/lockdep.c:3842
 __lock_acquire+0x1295/0x2000 kernel/locking/lockdep.c:5074
 lock_acquire+0x1e3/0x520 kernel/locking/lockdep.c:5691
 __mutex_lock_common+0x1d8/0x2530 kernel/locking/mutex.c:603
 __mutex_lock kernel/locking/mutex.c:747 [inline]
 mutex_lock_nested+0x1b/0x20 kernel/locking/mutex.c:799
 hfsplus_file_extend+0x1d6/0x1b10 fs/hfsplus/extents.c:457
 hfsplus_bmap_reserve+0x105/0x4e0 fs/hfsplus/btree.c:358
 hfsplus_rename_cat+0x1d3/0x1090 fs/hfsplus/catalog.c:456
 hfsplus_unlink+0x308/0x7f0 fs/hfsplus/dir.c:376
 vfs_unlink+0x35d/0x5f0 fs/namei.c:4250
 do_unlinkat+0x4a1/0x940 fs/namei.c:4316
 do_coredump+0x2148/0x2980 fs/coredump.c:673
 get_signal+0x145e/0x17e0 kernel/signal.c:2860
 arch_do_signal_or_restart+0x91/0x670 arch/x86/kernel/signal.c:306
 exit_to_user_mode_loop+0x6a/0x100 kernel/entry/common.c:168
 exit_to_user_mode_prepare+0xb1/0x140 kernel/entry/common.c:204
 irqentry_exit_to_user_mode+0x9/0x40 kernel/entry/common.c:310
 exc_page_fault+0x71e/0x910 arch/x86/mm/fault.c:1593
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:570
RIP: 0033:0x0
Code: Unable to access opcode bytes at 0xffffffffffffffd6.
RSP: 002b:0000000020000008 EFLAGS: 00010217
RAX: 0000000000000000 RBX: 000000000000003a RCX: 00007f424b16c259
RDX: 0000000000000000 RSI: 0000000020000000 RDI: 0000000000000000
RBP: 00007fffc9bb6998 R08: 0000000000000000 R09: 00007f424b1dae40
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fffc9bb69a0
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
 </TASK>

Crashes (3375):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets Manager Title
2023/04/29 22:45 upstream 89d77f71f493 62df2017 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-kasan-gce-smack-root possible deadlock in hfsplus_file_extend
2023/03/20 04:58 upstream 5cdfdd6da323 7939252e .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-kasan-gce-smack-root possible deadlock in hfsplus_file_extend
2022/12/25 02:26 upstream 72a85e2b0a1e 9da18ae8 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2022/12/23 13:59 upstream 8395ae05cb5a 9da18ae8 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2022/12/20 19:44 upstream 6feb57c2fd7c d3e76707 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2022/12/11 04:15 upstream 296a7b7eb792 67be1ae7 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2022/12/02 08:18 upstream ef4d3ea40565 e080de16 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/01/19 03:34 linux-next f3381a7baf5c 42660d9e .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/01/08 03:01 linux-next cc3c08b41a9c 1dac8c7a .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/06/10 22:18 upstream 64569520920a 49519f06 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/10 17:19 upstream 64569520920a 49519f06 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/10 15:42 upstream 64569520920a 49519f06 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/10 14:07 upstream 64569520920a 49519f06 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/10 11:10 upstream 64569520920a 49519f06 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/10 06:15 upstream 64569520920a 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/06/10 05:05 upstream 64569520920a 9018a337 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/10 01:48 upstream 33f2b5785a2b 9018a337 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/10 00:45 upstream 64569520920a 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root possible deadlock in hfsplus_file_extend
2023/06/09 23:30 upstream 33f2b5785a2b 9018a337 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/09 15:15 upstream 33f2b5785a2b 9018a337 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/09 13:43 upstream 33f2b5785a2b 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root possible deadlock in hfsplus_file_extend
2023/06/09 11:54 upstream 33f2b5785a2b 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/09 09:07 upstream 25041a4c02c7 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/09 07:17 upstream 25041a4c02c7 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/09 03:27 upstream 25041a4c02c7 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/08 22:44 upstream 25041a4c02c7 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/08 21:38 upstream 25041a4c02c7 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/06/08 18:18 upstream 5f63595ebd82 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/08 17:07 upstream 5f63595ebd82 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/08 13:44 upstream 5f63595ebd82 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root possible deadlock in hfsplus_file_extend
2023/06/08 12:25 upstream 5f63595ebd82 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root possible deadlock in hfsplus_file_extend
2023/06/08 11:17 upstream 5f63595ebd82 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root possible deadlock in hfsplus_file_extend
2023/06/08 09:05 upstream 5f63595ebd82 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/08 07:02 upstream a27648c74210 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/08 05:39 upstream a27648c74210 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/08 04:10 upstream a27648c74210 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/08 02:25 upstream a27648c74210 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/08 00:45 upstream a27648c74210 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 22:22 upstream a27648c74210 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/06/07 20:59 upstream a27648c74210 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/06/07 18:44 upstream a27648c74210 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 17:42 upstream a27648c74210 058b3a5a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 16:33 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 15:24 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 15:05 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 13:57 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 12:49 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 11:31 upstream a4d7d7011219 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/06/07 10:25 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 08:40 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 06:46 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 05:20 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 03:58 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/07 01:18 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream possible deadlock in hfsplus_file_extend
2023/06/06 22:32 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root possible deadlock in hfsplus_file_extend
2023/06/06 21:07 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root possible deadlock in hfsplus_file_extend
2023/06/06 15:14 upstream a4d7d7011219 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/06/06 13:50 upstream f8dba31b0a82 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2022/11/26 01:51 upstream 0b1dcc2cf55a 74a66371 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2022/11/25 23:54 upstream 08ad43d554ba f4470a7b .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/26 13:00 upstream 0d85b27b0cc6 b0e6aca7 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in hfsplus_file_extend
2023/06/01 07:12 linux-next 715abedee4cd babc4389 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/06/10 03:49 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci d8b213732169 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfsplus_file_extend
2023/06/10 03:16 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci d8b213732169 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfsplus_file_extend
2023/06/08 23:45 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 908f31f2a05b 7086cdb9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfsplus_file_extend
2023/06/06 19:50 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci cd6bd67ad7ab a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfsplus_file_extend
2023/06/06 16:18 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci eb0f1697d729 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfsplus_file_extend
* Struck through repros no longer work on HEAD.