[ OK ] Started Getty on tty2. [ OK ] Started Getty on tty1. [ OK ] Started Serial Getty on ttyS0. [ OK ] Reached target Login Prompts. [ OK ] Reached target Multi-User System. [ OK ] Reached target Graphical Interface. Starting Update UTMP about System Runlevel Changes... Starting Load/Save RF Kill Switch Status... [ OK ] Started Load/Save RF Kill Switch Status. [ OK ] Started Update UTMP about System Runlevel Changes. Debian GNU/Linux 9 syzkaller ttyS0 Warning: Permanently added '10.128.1.50' (ECDSA) to the list of known hosts. executing program syzkaller login: [ 32.826841] BTRFS: device fsid 24c7a497-3402-47dd-bef8-82358f5f30e0 devid 1 transid 8 /dev/loop0 [ 32.845585] BTRFS info (device loop0): enabling inode map caching [ 32.855461] BTRFS warning (device loop0): excessive commit interval 622039222 [ 32.864184] BTRFS info (device loop0): force zlib compression, level 3 [ 32.872992] BTRFS info (device loop0): using free space tree [ 32.879049] BTRFS info (device loop0): has skinny extents [ 32.904819] [ 32.906465] ====================================================== [ 32.912773] WARNING: possible circular locking dependency detected [ 32.919093] 4.19.211-syzkaller #0 Not tainted [ 32.923580] ------------------------------------------------------ [ 32.929893] syz-executor601/8083 is trying to acquire lock: [ 32.935588] 000000001e26bab2 (sb_internal#2){.+.+}, at: start_transaction+0xa37/0xf90 [ 32.943546] [ 32.943546] but task is already holding lock: [ 32.949504] 000000008a908178 (&fs_info->qgroup_ioctl_lock){+.+.}, at: btrfs_quota_enable+0xbf/0x10b0 [ 32.958764] [ 32.958764] which lock already depends on the new lock. [ 32.958764] [ 32.967055] [ 32.967055] the existing dependency chain (in reverse order) is: [ 32.974656] [ 32.974656] -> #1 (&fs_info->qgroup_ioctl_lock){+.+.}: [ 32.981410] btrfs_create_qgroup+0x5a/0x270 [ 32.986261] btrfs_ioctl+0xcce/0x76d0 [ 32.990564] do_vfs_ioctl+0xcdb/0x12e0 [ 32.994950] ksys_ioctl+0x9b/0xc0 [ 32.998938] __x64_sys_ioctl+0x6f/0xb0 [ 33.003335] do_syscall_64+0xf9/0x620 [ 33.007723] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 33.013406] [ 33.013406] -> #0 (sb_internal#2){.+.+}: [ 33.018932] __sb_start_write+0x6e/0x2a0 [ 33.023492] start_transaction+0xa37/0xf90 [ 33.028232] btrfs_quota_enable+0x169/0x10b0 [ 33.033139] btrfs_ioctl+0x622c/0x76d0 [ 33.037523] do_vfs_ioctl+0xcdb/0x12e0 [ 33.041907] ksys_ioctl+0x9b/0xc0 [ 33.045867] __x64_sys_ioctl+0x6f/0xb0 [ 33.050254] do_syscall_64+0xf9/0x620 [ 33.054558] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 33.060241] [ 33.060241] other info that might help us debug this: [ 33.060241] [ 33.068363] Possible unsafe locking scenario: [ 33.068363] [ 33.074404] CPU0 CPU1 [ 33.079044] ---- ---- [ 33.083681] lock(&fs_info->qgroup_ioctl_lock); [ 33.088416] lock(sb_internal#2); [ 33.094452] lock(&fs_info->qgroup_ioctl_lock); [ 33.101700] lock(sb_internal#2); [ 33.105218] [ 33.105218] *** DEADLOCK *** [ 33.105218] [ 33.111255] 3 locks held by syz-executor601/8083: [ 33.116068] #0: 0000000018b667d7 (sb_writers#11){.+.+}, at: mnt_want_write_file+0x63/0x1d0 [ 33.124548] #1: 000000007bb2a53e (&fs_info->subvol_sem){+.+.}, at: btrfs_ioctl+0x3d12/0x76d0 [ 33.133206] #2: 000000008a908178 (&fs_info->qgroup_ioctl_lock){+.+.}, at: btrfs_quota_enable+0xbf/0x10b0 [ 33.142897] [ 33.142897] stack backtrace: [ 33.147379] CPU: 0 PID: 8083 Comm: syz-executor601 Not tainted 4.19.211-syzkaller #0 [ 33.155234] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022 [ 33.164565] Call Trace: [ 33.167136] dump_stack+0x1fc/0x2ef [ 33.170772] print_circular_bug.constprop.0.cold+0x2d7/0x41e [ 33.176547] __lock_acquire+0x30c9/0x3ff0 [ 33.180674] ? mark_held_locks+0xf0/0xf0 [ 33.184712] ? mark_held_locks+0xf0/0xf0 [ 33.188755] ? lock_acquire+0x170/0x3c0 [ 33.192713] ? btrfs_block_rsv_add+0xb6/0xd0 [ 33.197118] lock_acquire+0x170/0x3c0 [ 33.200900] ? start_transaction+0xa37/0xf90 [ 33.205289] __sb_start_write+0x6e/0x2a0 [ 33.209329] ? start_transaction+0xa37/0xf90 [ 33.213723] start_transaction+0xa37/0xf90 [ 33.217939] btrfs_quota_enable+0x169/0x10b0 [ 33.222351] ? mark_held_locks+0xf0/0xf0 [ 33.226400] ? __might_fault+0x11f/0x1d0 [ 33.230440] ? btrfs_free_qgroup_config+0xc0/0xc0 [ 33.235295] ? lock_downgrade+0x720/0x720 [ 33.239425] ? lock_acquire+0x170/0x3c0 [ 33.243376] ? __might_fault+0xef/0x1d0 [ 33.247336] ? lock_acquire+0x170/0x3c0 [ 33.251291] ? btrfs_ioctl+0x3d12/0x76d0 [ 33.255337] btrfs_ioctl+0x622c/0x76d0 [ 33.259207] ? is_bpf_text_address+0xfc/0x1b0 [ 33.263683] ? kernel_text_address+0xbd/0xf0 [ 33.268072] ? btrfs_ioctl_get_supported_features+0x50/0x50 [ 33.273851] ? entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 33.279197] ? __save_stack_trace+0xaf/0x190 [ 33.283588] ? check_preemption_disabled+0x41/0x280 [ 33.288583] ? trace_hardirqs_off+0x64/0x200 [ 33.292971] ? __kasan_slab_free+0x186/0x1f0 [ 33.297361] ? kmem_cache_free+0x7f/0x260 [ 33.301491] ? putname+0xe1/0x120 [ 33.304921] ? do_sys_open+0x2ba/0x520 [ 33.308792] ? do_syscall_64+0xf9/0x620 [ 33.312745] ? entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 33.318087] ? mark_held_locks+0xf0/0xf0 [ 33.322127] ? mark_held_locks+0xf0/0xf0 [ 33.326168] ? debug_check_no_obj_freed+0x201/0x490 [ 33.331165] ? lock_downgrade+0x720/0x720 [ 33.335290] ? lock_acquire+0x170/0x3c0 [ 33.339241] ? debug_check_no_obj_freed+0xb5/0x490 [ 33.344151] ? btrfs_ioctl_get_supported_features+0x50/0x50 [ 33.349843] do_vfs_ioctl+0xcdb/0x12e0 [ 33.353711] ? _raw_spin_unlock_irqrestore+0x66/0xe0 [ 33.358798] ? debug_check_no_obj_freed+0x201/0x490 [ 33.363794] ? ioctl_preallocate+0x200/0x200 [ 33.368180] ? putname+0xe1/0x120 [ 33.371611] ? putname+0xe1/0x120 [ 33.375045] ? rcu_read_lock_sched_held+0x16c/0x1d0 [ 33.380040] ? kmem_cache_free+0x226/0x260 [ 33.384252] ? putname+0xe1/0x120 [ 33.387681] ? do_sys_open+0x2bf/0x520 [ 33.391549] ? filp_open+0x70/0x70 [ 33.395069] ksys_ioctl+0x9b/0xc0 [ 33.398501] __x64_sys_ioctl+0x6f/0xb0 [ 33.402374] ? lockdep_hardirqs_on+0x3a8/0x5c0 [ 33.406934] do_syscall_64+0xf9/0x620 [ 33.410743] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 33.415927] RIP: 0033:0x7fbf0298a5e9 [ 33.419622] Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 e1 14 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48 [ 33.438510] RSP: 002b:00007ffdb8206158 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [ 33.446195] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fbf0298a5e9 [ 33.453442] RDX: 00000000200000c0 RSI: 00000000c0109428 RDI: 0000000000000005 [ 33.460692] RBP: 0000000000000000 R08: 00007fbf029fcec0 R09: 00007fbf029fcec0 [ 33.467942] R10: 00007fbf029fcec0 R11: 0000000000000246 R12: 00007ffdb8206180 executing program [ 33.475194] R13: 0000000000000000 R14: 431bde82d7b634db R15: 0000000000000000 [ 33.493384] BTRFS error (device loop0): fail to start transaction for status update: -28 executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program