Buffer I/O error on dev loop1, logical block 0, async page read ====================================================== WARNING: possible circular locking dependency detected 6.18.0-rc1-next-20251013 #1 Not tainted ------------------------------------------------------ syz-executor.7/8621 is trying to acquire lock: ffff888008fee220 (&root->kernfs_iattr_rwsem){++++}-{4:4}, at: kernfs_iop_getattr+0x9f/0x100 but task is already holding lock: ffff888009fa00a8 (&q->q_usage_counter(io)){++++}-{0:0}, at: blk_mq_freeze_queue_nomemsave+0x15/0x20 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (&q->q_usage_counter(io)){++++}-{0:0}: blk_alloc_queue+0x612/0x750 blk_mq_alloc_queue+0x170/0x280 __blk_mq_alloc_disk+0x2a/0x120 loop_add+0x494/0xb60 loop_init+0x11e/0x180 do_one_initcall+0xf4/0x630 kernel_init_freeable+0x53e/0x7b0 kernel_init+0x1e/0x2d0 ret_from_fork+0x38b/0x470 ret_from_fork_asm+0x1a/0x30 -> #1 (fs_reclaim){+.+.}-{0:0}: fs_reclaim_acquire+0x102/0x150 kmem_cache_alloc_noprof+0x52/0x680 __kernfs_iattrs+0x11f/0x3f0 __kernfs_setattr+0x4d/0x3d0 kernfs_iop_setattr+0xe1/0x130 notify_change+0x6a0/0x12c0 do_truncate+0x1be/0x220 path_openat+0x21f3/0x2880 do_filp_open+0x1e8/0x450 do_sys_openat2+0x104/0x1b0 __x64_sys_openat+0x142/0x200 do_syscall_64+0xbf/0x390 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #0 (&root->kernfs_iattr_rwsem){++++}-{4:4}: __lock_acquire+0x139f/0x1b70 lock_acquire+0x15e/0x2f0 down_read+0x9b/0x470 kernfs_iop_getattr+0x9f/0x100 vfs_getattr_nosec+0x254/0x3e0 vfs_getattr+0x4d/0x70 loop_query_min_dio_size.isra.0+0x10e/0x240 lo_ioctl+0x142a/0x1ca0 blkdev_ioctl+0x27c/0x6d0 __x64_sys_ioctl+0x18f/0x210 do_syscall_64+0xbf/0x390 entry_SYSCALL_64_after_hwframe+0x77/0x7f other info that might help us debug this: Chain exists of: &root->kernfs_iattr_rwsem --> fs_reclaim --> &q->q_usage_counter(io) Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&q->q_usage_counter(io)); lock(fs_reclaim); lock(&q->q_usage_counter(io)); rlock(&root->kernfs_iattr_rwsem); *** DEADLOCK *** 3 locks held by syz-executor.7/8621: #0: ffff888009cd2440 (&lo->lo_mutex){+.+.}-{4:4}, at: loop_global_lock_killable+0x8e/0xd0 #1: ffff888009fa00a8 (&q->q_usage_counter(io)){++++}-{0:0}, at: blk_mq_freeze_queue_nomemsave+0x15/0x20 #2: ffff888009fa00e0 (&q->q_usage_counter(queue)#3){+.+.}-{0:0}, at: blk_mq_freeze_queue_nomemsave+0x15/0x20 stack backtrace: CPU: 1 UID: 0 PID: 8621 Comm: syz-executor.7 Not tainted 6.18.0-rc1-next-20251013 #1 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 Call Trace: dump_stack_lvl+0xca/0x120 print_circular_bug+0x27b/0x360 check_noncircular+0x127/0x140 __lock_acquire+0x139f/0x1b70 lock_acquire+0x15e/0x2f0 down_read+0x9b/0x470 kernfs_iop_getattr+0x9f/0x100 vfs_getattr_nosec+0x254/0x3e0 vfs_getattr+0x4d/0x70 loop_query_min_dio_size.isra.0+0x10e/0x240 lo_ioctl+0x142a/0x1ca0 blkdev_ioctl+0x27c/0x6d0 __x64_sys_ioctl+0x18f/0x210 do_syscall_64+0xbf/0x390 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f3802293b19 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f37ff809188 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f38023a6f60 RCX: 00007f3802293b19 RDX: 0000000000000004 RSI: 0000000000004c06 RDI: 0000000000000003 RBP: 00007f38022edf6d R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fff4d1d903f R14: 00007f37ff809300 R15: 0000000000022000 loop1: detected capacity change from 0 to 7 loop0: detected capacity change from 7 to 8 loop0: detected capacity change from 8 to 7 loop1: detected capacity change from 0 to 7 loop0: detected capacity change from 7 to 8 blk_print_req_error: 12 callbacks suppressed I/O error, dev loop0, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 buffer_io_error: 10 callbacks suppressed Buffer I/O error on dev loop0, logical block 1, async page read I/O error, dev loop0, sector 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 Buffer I/O error on dev loop0, logical block 2, async page read I/O error, dev loop0, sector 3 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 Buffer I/O error on dev loop0, logical block 3, async page read I/O error, dev loop0, sector 4 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 Buffer I/O error on dev loop0, logical block 4, async page read I/O error, dev loop0, sector 5 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 Buffer I/O error on dev loop0, logical block 5, async page read I/O error, dev loop0, sector 6 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 Buffer I/O error on dev loop0, logical block 6, async page read I/O error, dev loop0, sector 7 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 Buffer I/O error on dev loop0, logical block 7, async page read I/O error, dev loop0, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 Buffer I/O error on dev loop0, logical block 1, async page read I/O error, dev loop0, sector 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 Buffer I/O error on dev loop0, logical block 2, async page read I/O error, dev loop0, sector 3 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 Buffer I/O error on dev loop0, logical block 3, async page read loop0: unable to read partition table