block nbd1: shutting down sockets 8021q: adding VLAN 0 to HW filter on device batadv0 block nbd3: Receive control failed (result -22) ====================================================== WARNING: possible circular locking dependency detected 4.19.78-syzkaller #0 Not tainted ------------------------------------------------------ kworker/u5:1/7067 is trying to acquire lock: 000000004c8fd1a0 (&nbd->config_lock){+.+.}, at: refcount_dec_and_mutex_lock+0x29/0x50 lib/refcount.c:311 but task is already holding lock: 000000009ad5d24b ((work_completion)(&args->work)){+.+.}, at: process_one_work+0x792/0x1670 kernel/workqueue.c:2128 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: kobject: 'loop4' (0000000069135e77): kobject_uevent_env -> #2 ((work_completion)(&args->work)){+.+.}: process_one_work+0x7e3/0x1670 kernel/workqueue.c:2129 worker_thread+0x85/0xb60 kernel/workqueue.c:2296 kobject: 'loop4' (0000000069135e77): fill_kobj_path: path = '/devices/virtual/block/loop4' kthread+0x324/0x3e0 kernel/kthread.c:246 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415 -> #1 ((wq_completion)"knbd%d-recv"nbd->index){+.+.}: flush_workqueue+0xf2/0x13c0 kernel/workqueue.c:2655 drain_workqueue+0x148/0x3a0 kernel/workqueue.c:2820 destroy_workqueue+0x19/0x580 kernel/workqueue.c:4158 nbd_config_put+0x346/0x7d0 drivers/block/nbd.c:1130 nbd_release+0xcd/0x130 drivers/block/nbd.c:1396 __blkdev_put+0x437/0x700 fs/block_dev.c:1804 blkdev_put+0x73/0x480 fs/block_dev.c:1866 blkdev_close+0x88/0xd0 fs/block_dev.c:1873 __fput+0x249/0x7f0 fs/file_table.c:278 ____fput+0x9/0x10 fs/file_table.c:309 task_work_run+0x108/0x180 kernel/task_work.c:113 tracehook_notify_resume include/linux/tracehook.h:193 [inline] exit_to_usermode_loop+0x1a9/0x200 arch/x86/entry/common.c:167 prepare_exit_to_usermode arch/x86/entry/common.c:198 [inline] syscall_return_slowpath arch/x86/entry/common.c:271 [inline] do_syscall_64+0x413/0x4e0 arch/x86/entry/common.c:296 entry_SYSCALL_64_after_hwframe+0x49/0xbe -> #0 (&nbd->config_lock){+.+.}: lock_acquire+0x173/0x3d0 kernel/locking/lockdep.c:3903 __mutex_lock_common kernel/locking/mutex.c:925 [inline] __mutex_lock+0xf5/0x1210 kernel/locking/mutex.c:1072 mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:1087 kobject: 'loop5' (00000000a0250a7c): kobject_uevent_env refcount_dec_and_mutex_lock+0x29/0x50 lib/refcount.c:311 nbd_config_put+0x2e/0x7d0 drivers/block/nbd.c:1108 recv_work+0x16a/0x1d0 drivers/block/nbd.c:738 process_one_work+0x830/0x1670 kernel/workqueue.c:2153 worker_thread+0x85/0xb60 kernel/workqueue.c:2296 kthread+0x324/0x3e0 kernel/kthread.c:246 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415 other info that might help us debug this: Chain exists of: &nbd->config_lock --> (wq_completion)"knbd%d-recv"nbd->index --> (work_completion)(&args->work) Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock((work_completion)(&args->work)); lock((wq_completion)"knbd%d-recv"nbd->index); lock((work_completion)(&args->work)); lock(&nbd->config_lock); *** DEADLOCK *** 2 locks held by kworker/u5:1/7067: #0: 000000001e346103 ((wq_completion)"knbd%d-recv"nbd->index){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 000000001e346103 ((wq_completion)"knbd%d-recv"nbd->index){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 000000001e346103 ((wq_completion)"knbd%d-recv"nbd->index){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:40 [inline] #0: 000000001e346103 ((wq_completion)"knbd%d-recv"nbd->index){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:59 [inline] #0: 000000001e346103 ((wq_completion)"knbd%d-recv"nbd->index){+.+.}, at: set_work_data kernel/workqueue.c:617 [inline] #0: 000000001e346103 ((wq_completion)"knbd%d-recv"nbd->index){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:644 [inline] #0: 000000001e346103 ((wq_completion)"knbd%d-recv"nbd->index){+.+.}, at: process_one_work+0x762/0x1670 kernel/workqueue.c:2124 #1: 000000009ad5d24b ((work_completion)(&args->work)){+.+.}, at: process_one_work+0x792/0x1670 kernel/workqueue.c:2128 stack backtrace: CPU: 1 PID: 7067 Comm: kworker/u5:1 Not tainted 4.19.78-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: knbd3-recv recv_work kobject: 'loop5' (00000000a0250a7c): fill_kobj_path: path = '/devices/virtual/block/loop5' Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x109/0x157 lib/dump_stack.c:113 print_circular_bug.isra.34.cold.55+0x1bd/0x27d kernel/locking/lockdep.c:1221 check_prev_add kernel/locking/lockdep.c:1861 [inline] check_prevs_add kernel/locking/lockdep.c:1974 [inline] validate_chain kernel/locking/lockdep.c:2415 [inline] __lock_acquire+0x30df/0x4980 kernel/locking/lockdep.c:3411 lock_acquire+0x173/0x3d0 kernel/locking/lockdep.c:3903 __mutex_lock_common kernel/locking/mutex.c:925 [inline] __mutex_lock+0xf5/0x1210 kernel/locking/mutex.c:1072 mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:1087 refcount_dec_and_mutex_lock+0x29/0x50 lib/refcount.c:311 nbd_config_put+0x2e/0x7d0 drivers/block/nbd.c:1108 recv_work+0x16a/0x1d0 drivers/block/nbd.c:738 process_one_work+0x830/0x1670 kernel/workqueue.c:2153 worker_thread+0x85/0xb60 kernel/workqueue.c:2296 kthread+0x324/0x3e0 kernel/kthread.c:246 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415 kobject: 'nbd2' (000000008e96b285): kobject_uevent_env kobject: 'loop0' (00000000a2b6586b): kobject_uevent_env kobject: 'nbd2' (000000008e96b285): fill_kobj_path: path = '/devices/virtual/block/nbd2' block nbd2: Receive control failed (result -22) block nbd3: Device being setup by another task kobject: 'nbd4' (00000000140f0900): kobject_uevent_env kobject: 'nbd5' (0000000032132dc7): kobject_uevent_env kobject: 'nbd4' (00000000140f0900): fill_kobj_path: path = '/devices/virtual/block/nbd4' kobject: 'nbd5' (0000000032132dc7): fill_kobj_path: path = '/devices/virtual/block/nbd5' block nbd4: Receive control failed (result -22) kobject: 'nbd1' (0000000079bc3418): kobject_uevent_env kobject: 'nbd0' (000000004d4d8dc3): kobject_uevent_env kobject: 'nbd1' (0000000079bc3418): fill_kobj_path: path = '/devices/virtual/block/nbd1' kobject: 'nbd0' (000000004d4d8dc3): fill_kobj_path: path = '/devices/virtual/block/nbd0' block nbd2: shutting down sockets block nbd5: Receive control failed (result -22) block nbd4: shutting down sockets block nbd1: Receive control failed (result -22) block nbd5: shutting down sockets block nbd0: Receive control failed (result -22) block nbd1: shutting down sockets kobject: 'loop0' (00000000a2b6586b): fill_kobj_path: path = '/devices/virtual/block/loop0' block nbd0: shutting down sockets kobject: 'loop1' (0000000047d3c636): kobject_uevent_env kobject: 'loop1' (0000000047d3c636): fill_kobj_path: path = '/devices/virtual/block/loop1' kobject: 'loop3' (00000000e142b8ab): kobject_uevent_env kobject: 'loop3' (00000000e142b8ab): fill_kobj_path: path = '/devices/virtual/block/loop3' block nbd3: shutting down sockets kobject: 'nbd5' (0000000032132dc7): kobject_uevent_env block nbd5: Receive control failed (result -22) kobject: 'nbd5' (0000000032132dc7): fill_kobj_path: path = '/devices/virtual/block/nbd5' kobject: 'nbd0' (000000004d4d8dc3): kobject_uevent_env block nbd0: Receive control failed (result -22) kobject: 'nbd0' (000000004d4d8dc3): fill_kobj_path: path = '/devices/virtual/block/nbd0' kobject: 'nbd3' (00000000a79b1e8e): kobject_uevent_env block nbd3: Receive control failed (result -22) kobject: 'nbd3' (00000000a79b1e8e): fill_kobj_path: path = '/devices/virtual/block/nbd3' block nbd5: shutting down sockets block nbd0: shutting down sockets block nbd2: Could not allocate knbd recv work queue. block nbd3: shutting down sockets block nbd2: shutting down sockets kobject: 'nbd4' (00000000140f0900): kobject_uevent_env kobject: 'nbd1' (0000000079bc3418): kobject_uevent_env kobject: 'nbd4' (00000000140f0900): fill_kobj_path: path = '/devices/virtual/block/nbd4' block nbd4: Receive control failed (result -22) kobject: 'nbd1' (0000000079bc3418): fill_kobj_path: path = '/devices/virtual/block/nbd1' block nbd4: shutting down sockets block nbd1: shutting down sockets kobject: 'loop4' (0000000069135e77): kobject_uevent_env kobject: 'loop4' (0000000069135e77): fill_kobj_path: path = '/devices/virtual/block/loop4' kobject: 'nbd4' (00000000140f0900): kobject_uevent_env kobject: 'loop3' (00000000e142b8ab): kobject_uevent_env kobject: 'nbd4' (00000000140f0900): fill_kobj_path: path = '/devices/virtual/block/nbd4' kobject: 'loop3' (00000000e142b8ab): fill_kobj_path: path = '/devices/virtual/block/loop3' block nbd4: Receive control failed (result -22) kobject: 'loop2' (0000000052878f36): kobject_uevent_env block nbd4: shutting down sockets kobject: 'loop2' (0000000052878f36): fill_kobj_path: path = '/devices/virtual/block/loop2' kobject: 'loop0' (00000000a2b6586b): kobject_uevent_env kobject: 'loop0' (00000000a2b6586b): fill_kobj_path: path = '/devices/virtual/block/loop0' kobject: 'nbd2' (000000008e96b285): kobject_uevent_env kobject: 'nbd0' (000000004d4d8dc3): kobject_uevent_env kobject: 'nbd0' (000000004d4d8dc3): fill_kobj_path: path = '/devices/virtual/block/nbd0' kobject: 'nbd3' (00000000a79b1e8e): kobject_uevent_env kobject: 'nbd2' (000000008e96b285): fill_kobj_path: path = '/devices/virtual/block/nbd2' kobject: 'nbd3' (00000000a79b1e8e): fill_kobj_path: path = '/devices/virtual/block/nbd3' block nbd2: Receive control failed (result -22) kobject: 'loop5' (00000000a0250a7c): kobject_uevent_env block nbd0: Receive control failed (result -22) block nbd2: shutting down sockets block nbd3: Receive control failed (result -22) kobject: 'loop5' (00000000a0250a7c): fill_kobj_path: path = '/devices/virtual/block/loop5' block nbd0: shutting down sockets kobject: 'loop1' (0000000047d3c636): kobject_uevent_env block nbd3: shutting down sockets kobject: 'loop1' (0000000047d3c636): fill_kobj_path: path = '/devices/virtual/block/loop1' kobject: 'nbd1' (0000000079bc3418): kobject_uevent_env kobject: 'nbd5' (0000000032132dc7): kobject_uevent_env kobject: 'nbd5' (0000000032132dc7): fill_kobj_path: path = '/devices/virtual/block/nbd5' kobject: 'nbd1' (0000000079bc3418): fill_kobj_path: path = '/devices/virtual/block/nbd1' kobject: 'nbd4' (00000000140f0900): kobject_uevent_env block nbd5: Receive control failed (result -22) kobject: 'nbd4' (00000000140f0900): fill_kobj_path: path = '/devices/virtual/block/nbd4' block nbd4: shutting down sockets block nbd1: Receive control failed (result -22) block nbd5: shutting down sockets block nbd1: shutting down sockets block nbd2: shutting down sockets kobject: 'nbd3' (00000000a79b1e8e): kobject_uevent_env kobject: 'nbd0' (000000004d4d8dc3): kobject_uevent_env kobject: 'nbd3' (00000000a79b1e8e): fill_kobj_path: path = '/devices/virtual/block/nbd3' kobject: 'nbd0' (000000004d4d8dc3): fill_kobj_path: path = '/devices/virtual/block/nbd0' block nbd3: shutting down sockets block nbd0: shutting down sockets kobject: 'loop4' (0000000069135e77): kobject_uevent_env kobject: 'nbd5' (0000000032132dc7): kobject_uevent_env block nbd5: Receive control failed (result -22) kobject: 'nbd5' (0000000032132dc7): fill_kobj_path: path = '/devices/virtual/block/nbd5' kobject: 'nbd1' (0000000079bc3418): kobject_uevent_env block nbd1: Receive control failed (result -22) kobject: 'nbd1' (0000000079bc3418): fill_kobj_path: path = '/devices/virtual/block/nbd1' block nbd1: shutting down sockets block nbd5: shutting down sockets kobject: 'nbd4' (00000000140f0900): kobject_uevent_env block nbd4: Receive control failed (result -22) kobject: 'nbd4' (00000000140f0900): fill_kobj_path: path = '/devices/virtual/block/nbd4' block nbd4: shutting down sockets kobject: 'loop4' (0000000069135e77): fill_kobj_path: path = '/devices/virtual/block/loop4' block nbd4: shutting down sockets kobject: 'nbd0' (000000004d4d8dc3): kobject_uevent_env block nbd0: Receive control failed (result -22) kobject: 'nbd0' (000000004d4d8dc3): fill_kobj_path: path = '/devices/virtual/block/nbd0' kobject: 'loop0' (00000000a2b6586b): kobject_uevent_env kobject: 'nbd1' (0000000079bc3418): kobject_uevent_env kobject: 'nbd2' (000000008e96b285): kobject_uevent_env kobject: 'nbd1' (0000000079bc3418): fill_kobj_path: path = '/devices/virtual/block/nbd1' kobject: 'nbd2' (000000008e96b285): fill_kobj_path: path = '/devices/virtual/block/nbd2' kobject: 'nbd3' (00000000a79b1e8e): kobject_uevent_env kobject: 'nbd5' (0000000032132dc7): kobject_uevent_env kobject: 'nbd3' (00000000a79b1e8e): fill_kobj_path: path = '/devices/virtual/block/nbd3' kobject: 'nbd5' (0000000032132dc7): fill_kobj_path: path = '/devices/virtual/block/nbd5' block nbd1: Receive control failed (result -22) block nbd2: Receive control failed (result -22) block nbd3: Receive control failed (result -22) block nbd5: Receive control failed (result -22) block nbd2: shutting down sockets kobject: 'loop0' (00000000a2b6586b): fill_kobj_path: path = '/devices/virtual/block/loop0' block nbd5: shutting down sockets kobject: 'loop2' (0000000052878f36): kobject_uevent_env block nbd1: shutting down sockets kobject: 'loop2' (0000000052878f36): fill_kobj_path: path = '/devices/virtual/block/loop2' block nbd0: shutting down sockets kobject: 'loop5' (00000000a0250a7c): kobject_uevent_env block nbd3: shutting down sockets kobject: 'loop5' (00000000a0250a7c): fill_kobj_path: path = '/devices/virtual/block/loop5' kobject: 'loop1' (0000000047d3c636): kobject_uevent_env kobject: 'loop1' (0000000047d3c636): fill_kobj_path: path = '/devices/virtual/block/loop1' kobject: 'nbd4' (00000000140f0900): kobject_uevent_env kobject: 'loop4' (0000000069135e77): kobject_uevent_env kobject: 'nbd4' (00000000140f0900): fill_kobj_path: path = '/devices/virtual/block/nbd4' kobject: 'loop4' (0000000069135e77): fill_kobj_path: path = '/devices/virtual/block/loop4' block nbd4: Receive control failed (result -22) block nbd4: shutting down sockets kobject: 'nbd5' (0000000032132dc7): kobject_uevent_env kobject: 'nbd3' (00000000a79b1e8e): kobject_uevent_env kobject: 'nbd5' (0000000032132dc7): fill_kobj_path: path = '/devices/virtual/block/nbd5' kobject: 'nbd3' (00000000a79b1e8e): fill_kobj_path: path = '/devices/virtual/block/nbd3' kobject: 'nbd2' (000000008e96b285): kobject_uevent_env kobject: 'nbd1' (0000000079bc3418): kobject_uevent_env kobject: 'nbd2' (000000008e96b285): fill_kobj_path: path = '/devices/virtual/block/nbd2' kobject: 'nbd1' (0000000079bc3418): fill_kobj_path: path = '/devices/virtual/block/nbd1' block nbd1: shutting down sockets kobject: 'nbd0' (000000004d4d8dc3): kobject_uevent_env kobject: 'nbd0' (000000004d4d8dc3): fill_kobj_path: path = '/devices/virtual/block/nbd0' block nbd5: shutting down sockets block nbd0: shutting down sockets block nbd3: Receive control failed (result -22) block nbd2: Receive control failed (result -22) block nbd2: shutting down sockets block nbd3: shutting down sockets kobject: 'nbd4' (00000000140f0900): kobject_uevent_env block nbd4: Receive control failed (result -22) kobject: 'nbd4' (00000000140f0900): fill_kobj_path: path = '/devices/virtual/block/nbd4' kobject: 'loop1' (0000000047d3c636): kobject_uevent_env block nbd4: shutting down sockets kobject: 'loop1' (0000000047d3c636): fill_kobj_path: path = '/devices/virtual/block/loop1' kobject: 'nbd1' (0000000079bc3418): kobject_uevent_env kobject: 'nbd0' (000000004d4d8dc3): kobject_uevent_env kobject: 'nbd1' (0000000079bc3418): fill_kobj_path: path = '/devices/virtual/block/nbd1' block nbd1: Receive control failed (result -22) kobject: 'nbd0' (000000004d4d8dc3): fill_kobj_path: path = '/devices/virtual/block/nbd0' kobject: 'nbd2' (000000008e96b285): kobject_uevent_env block nbd0: Receive control failed (result -22) kobject: 'nbd2' (000000008e96b285): fill_kobj_path: path = '/devices/virtual/block/nbd2' block nbd2: Receive control failed (result -22) kobject: 'loop5' (00000000a0250a7c): kobject_uevent_env block nbd1: shutting down sockets kobject: 'nbd5' (0000000032132dc7): kobject_uevent_env block nbd0: shutting down sockets kobject: 'nbd5' (0000000032132dc7): fill_kobj_path: path = '/devices/virtual/block/nbd5' block nbd5: Receive control failed (result -22) kobject: 'loop5' (00000000a0250a7c): fill_kobj_path: path = '/devices/virtual/block/loop5' block nbd2: shutting down sockets block nbd5: shutting down sockets kobject: 'loop0' (00000000a2b6586b): kobject_uevent_env kobject: 'nbd3' (00000000a79b1e8e): kobject_uevent_env kobject: 'loop0' (00000000a2b6586b): fill_kobj_path: path = '/devices/virtual/block/loop0' kobject: 'nbd3' (00000000a79b1e8e): fill_kobj_path: path = '/devices/virtual/block/nbd3' kobject: 'loop2' (0000000052878f36): kobject_uevent_env block nbd3: Receive control failed (result -22) kobject: 'loop2' (0000000052878f36): fill_kobj_path: path = '/devices/virtual/block/loop2' block nbd3: shutting down sockets kobject: 'loop3' (00000000e142b8ab): kobject_uevent_env kobject: 'loop3' (00000000e142b8ab): fill_kobj_path: path = '/devices/virtual/block/loop3' kobject: 'loop4' (0000000069135e77): kobject_uevent_env kobject: 'loop4' (0000000069135e77): fill_kobj_path: path = '/devices/virtual/block/loop4'