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: 185d, last: 1h15m

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 78 3d10h 77d 0/3 upstream: reported on 2023/03/13 14:24
linux-4.14 possible deadlock in hfsplus_file_extend hfsplus C 3 86d 152d 0/1 upstream: reported C repro on 2022/12/29 06:07
linux-5.15 possible deadlock in hfsplus_file_extend 98 3d12h 79d 0/3 upstream: reported on 2023/03/11 17:12
linux-4.19 possible deadlock in hfsplus_file_extend hfsplus C 258 85d 184d 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 (3125):
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/05/30 07:11 upstream 8b817fded42d cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/30 03:11 upstream 8b817fded42d cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/30 01:30 upstream 8b817fded42d cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/30 01:30 upstream 8b817fded42d cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/29 22:31 upstream 8b817fded42d cf184559 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream possible deadlock in hfsplus_file_extend
2023/05/29 16:36 upstream 8b817fded42d cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/29 14:27 upstream 8b817fded42d cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/29 11:51 upstream 7877cb91f108 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/29 10:08 upstream 7877cb91f108 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/29 08:22 upstream e338142b39cf cf184559 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream possible deadlock in hfsplus_file_extend
2023/05/29 04:23 upstream 7877cb91f108 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/29 01:47 upstream 7877cb91f108 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/29 00:03 upstream 416839029e38 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/28 20:46 upstream 416839029e38 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/28 12:34 upstream 416839029e38 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/28 11:52 upstream 416839029e38 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/28 10:11 upstream 4e893b5aa4ac cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/28 07:45 upstream 4e893b5aa4ac cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/27 21:55 upstream 4e893b5aa4ac cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/27 19:47 upstream 49572d536129 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/27 15:34 upstream 49572d536129 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/05/27 08:55 upstream 49572d536129 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/27 07:46 upstream 0d85b27b0cc6 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/27 06:42 upstream 0d85b27b0cc6 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/27 04:03 upstream 0d85b27b0cc6 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/27 02:56 upstream 91a304340a22 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/05/27 00:36 upstream 0d85b27b0cc6 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/26 19:39 upstream 0d85b27b0cc6 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/05/26 18:38 upstream 0d85b27b0cc6 cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/26 16:09 upstream 9db898594c54 b40ef614 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/26 14:28 upstream 9db898594c54 b40ef614 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/26 10:59 upstream 9db898594c54 b40ef614 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/26 09:21 upstream 0d85b27b0cc6 b40ef614 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/05/26 07:07 upstream 0d85b27b0cc6 b40ef614 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root possible deadlock in hfsplus_file_extend
2023/05/26 05:30 upstream 9db898594c54 b40ef614 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/26 01:33 upstream 9db898594c54 0513b3e6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/26 00:32 upstream 9db898594c54 0513b3e6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/25 20:05 upstream 933174ae28ba 0513b3e6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/25 19:55 upstream 933174ae28ba 0513b3e6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/25 17:58 upstream 933174ae28ba 0513b3e6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/25 10:47 upstream 933174ae28ba 0513b3e6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/25 08:59 upstream 933174ae28ba 4bce1a3e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/25 07:57 upstream 933174ae28ba 4bce1a3e .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/05/25 06:12 upstream 933174ae28ba 4bce1a3e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfsplus_file_extend
2023/05/24 22:42 upstream 9d646009f65d 4bce1a3e .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root 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/05/26 23:32 linux-next 715abedee4cd cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/05/26 22:08 linux-next 715abedee4cd cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/05/25 13:53 linux-next 715abedee4cd 0513b3e6 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfsplus_file_extend
2023/05/26 11:05 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci eb0f1697d729 b40ef614 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfsplus_file_extend
2023/05/26 04:03 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci f1fcbaa18b28 b40ef614 .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.