====================================================== [ INFO: possible circular locking dependency detected ] 4.4.166+ #17 Not tainted ------------------------------------------------------- syz-executor769/2073 is trying to acquire lock: (&bdev->bd_mutex){+.+.+.}, at: [] blkdev_reread_part+0x1e/0x40 block/ioctl.c:189 but task is already holding lock: (&lo->lo_ctl_mutex#2){+.+...}, at: [] lo_compat_ioctl+0x103/0x140 drivers/block/loop.c:1566 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: [] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592 [] __mutex_lock_common kernel/locking/mutex.c:521 [inline] [] mutex_lock_nested+0xc2/0xb60 kernel/locking/mutex.c:621 [] __lo_release drivers/block/loop.c:1620 [inline] [] lo_release+0x85/0x1a0 drivers/block/loop.c:1643 [] __blkdev_put+0x636/0x840 fs/block_dev.c:1535 [] blkdev_put+0x85/0x560 fs/block_dev.c:1600 [] blkdev_close+0x8b/0xb0 fs/block_dev.c:1607 [] __fput+0x235/0x6f0 fs/file_table.c:208 [] ____fput+0x15/0x20 fs/file_table.c:244 [] task_work_run+0x21c/0x2d0 kernel/task_work.c:115 [] tracehook_notify_resume include/linux/tracehook.h:191 [inline] [] exit_to_usermode_loop+0x13d/0x160 arch/x86/entry/common.c:188 [] prepare_exit_to_usermode arch/x86/entry/common.c:221 [inline] [] syscall_return_slowpath+0x254/0x2d0 arch/x86/entry/common.c:286 [] int_ret_from_sys_call+0x25/0xa3 [] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592 [] __mutex_lock_common kernel/locking/mutex.c:521 [inline] [] mutex_lock_nested+0xc2/0xb60 kernel/locking/mutex.c:621 [] lo_open+0x1b/0xa0 drivers/block/loop.c:1600 [] __blkdev_get+0x2ae/0xdf0 fs/block_dev.c:1213 [] blkdev_get+0x2da/0x920 fs/block_dev.c:1353 [] blkdev_open+0x1a5/0x250 fs/block_dev.c:1508 [] do_dentry_open+0x38d/0xbd0 fs/open.c:749 [] vfs_open+0x12a/0x210 fs/open.c:862 [] do_last fs/namei.c:3269 [inline] [] path_openat+0xc10/0x3f10 fs/namei.c:3406 [] do_filp_open+0x197/0x270 fs/namei.c:3440 [] do_sys_open+0x31c/0x610 fs/open.c:1038 [] SYSC_open fs/open.c:1056 [inline] [] SyS_open+0x2d/0x40 fs/open.c:1051 [] entry_SYSCALL_64_fastpath+0x1e/0x9a [] check_prev_add kernel/locking/lockdep.c:1853 [inline] [] check_prevs_add kernel/locking/lockdep.c:1958 [inline] [] validate_chain kernel/locking/lockdep.c:2144 [inline] [] __lock_acquire+0x3cd4/0x5530 kernel/locking/lockdep.c:3213 [] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3592 [] __mutex_lock_common kernel/locking/mutex.c:521 [inline] [] mutex_lock_nested+0xc2/0xb60 kernel/locking/mutex.c:621 [] blkdev_reread_part+0x1e/0x40 block/ioctl.c:189 [] loop_reread_partitions+0x7c/0x90 drivers/block/loop.c:648 [] loop_set_status+0xa7e/0xfe0 drivers/block/loop.c:1192 [] loop_set_status_compat+0x9a/0xf0 drivers/block/loop.c:1539 [] lo_compat_ioctl+0x10e/0x140 drivers/block/loop.c:1567 [] compat_blkdev_ioctl+0x3a4/0x3546 block/compat_ioctl.c:751 [] C_SYSC_ioctl fs/compat_ioctl.c:1592 [inline] [] compat_SyS_ioctl+0x4af/0x2220 fs/compat_ioctl.c:1544 [] do_syscall_32_irqs_on arch/x86/entry/common.c:330 [inline] [] do_fast_syscall_32+0x31e/0xa80 arch/x86/entry/common.c:397 [] sysenter_flags_fixed+0xd/0x1a other info that might help us debug this: Chain exists of: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&lo->lo_ctl_mutex#2); lock(loop_index_mutex); lock(&lo->lo_ctl_mutex#2); lock(&bdev->bd_mutex); *** DEADLOCK *** 1 lock held by syz-executor769/2073: #0: (&lo->lo_ctl_mutex#2){+.+...}, at: [] lo_compat_ioctl+0x103/0x140 drivers/block/loop.c:1566 stack backtrace: CPU: 0 PID: 2073 Comm: syz-executor769 Not tainted 4.4.166+ #17 0000000000000000 d966f09b8dcbfade ffff8801d41ff5d0 ffffffff81aa62ad ffffffff83a9b890 ffffffff83a9acc0 ffff8800b7ad4740 ffffffff83ac0580 ffff8800b7ad5028 ffff8801d41ff620 ffffffff813a9549 ffff8800b7ad4740 Call Trace: [] __dump_stack lib/dump_stack.c:15 [inline] [] dump_stack+0xc1/0x124 lib/dump_stack.c:51 [] print_circular_bug.cold.31+0x2f6/0x435 kernel/locking/lockdep.c:1226 [