BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1576 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 45, name: kworker/u8:3 preempt_count: 101, expected: 0 RCU nest depth: 0, expected: 0 2 locks held by kworker/u8:3/45: #0: ffff0000d2fca948 ((wq_completion)loop0){+.+.}-{0:0}, at: process_one_work+0x658/0x156c kernel/workqueue.c:3212 #1: ffff800097d67bc0 ((work_completion)(&worker->work)){+.+.}-{0:0}, at: process_one_work+0x6ec/0x156c kernel/workqueue.c:3212 Preemption disabled at: [] spin_lock_irq include/linux/spinlock.h:376 [inline] [] loop_process_work+0xb54/0xfc0 drivers/block/loop.c:1927 CPU: 0 UID: 0 PID: 45 Comm: kworker/u8:3 Not tainted 6.15.0-rc6-syzkaller-gc919f08732cc #0 PREEMPT Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Workqueue: loop0 loop_workfn Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:466 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 __might_resched+0x348/0x4c4 kernel/sched/core.c:8818 __might_sleep+0x94/0x110 kernel/sched/core.c:8747 down_write+0x28/0xc0 kernel/locking/rwsem.c:1576 inode_lock include/linux/fs.h:867 [inline] jfs_fsync+0x9c/0x1d0 fs/jfs/file.c:28 vfs_fsync_range+0x160/0x19c fs/sync.c:187 generic_write_sync include/linux/fs.h:2976 [inline] dio_complete+0x510/0x6bc fs/direct-io.c:313 dio_bio_end_aio+0x474/0x544 fs/direct-io.c:368 bio_endio+0x81c/0x858 block/bio.c:1551 blk_update_request+0x4a4/0xbcc block/blk-mq.c:983 blk_mq_end_request+0x54/0x88 block/blk-mq.c:1145 lo_complete_rq+0x124/0x274 drivers/block/loop.c:304 blk_complete_reqs block/blk-mq.c:1220 [inline] blk_done_softirq+0x11c/0x168 block/blk-mq.c:1225 handle_softirqs+0x328/0xc88 kernel/softirq.c:579 __do_softirq+0x14/0x20 kernel/softirq.c:613 ____do_softirq+0x14/0x20 arch/arm64/kernel/irq.c:81 call_on_irq_stack+0x24/0x30 arch/arm64/kernel/entry.S:891 do_softirq_own_stack+0x20/0x2c arch/arm64/kernel/irq.c:86 invoke_softirq kernel/softirq.c:460 [inline] __irq_exit_rcu+0x1b0/0x478 kernel/softirq.c:680 irq_exit_rcu+0x14/0x84 kernel/softirq.c:696 __el1_irq arch/arm64/kernel/entry-common.c:584 [inline] el1_interrupt+0x38/0x54 arch/arm64/kernel/entry-common.c:598 el1h_64_irq_handler+0x18/0x24 arch/arm64/kernel/entry-common.c:603 el1h_64_irq+0x6c/0x70 arch/arm64/kernel/entry.S:596 __daif_local_irq_enable arch/arm64/include/asm/irqflags.h:26 [inline] (P) arch_local_irq_enable arch/arm64/include/asm/irqflags.h:48 [inline] (P) __raw_spin_unlock_irq include/linux/spinlock_api_smp.h:159 [inline] (P) _raw_spin_unlock_irq+0x34/0x80 kernel/locking/spinlock.c:202 (P) spin_unlock_irq include/linux/spinlock.h:401 [inline] loop_process_work+0x1b4/0xfc0 drivers/block/loop.c:1922 loop_workfn+0x50/0x64 drivers/block/loop.c:1948 process_one_work+0x7e8/0x156c kernel/workqueue.c:3238 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x958/0xed8 kernel/workqueue.c:3400 kthread+0x5fc/0x75c kernel/kthread.c:464 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:847 ============================= [ BUG: Invalid wait context ] 6.15.0-rc6-syzkaller-gc919f08732cc #0 Tainted: G W ----------------------------- kworker/u8:3/45 is trying to lock: ffff0000ddb85870 (&sb->s_type->i_mutex_key#20){+.+.}-{4:4}, at: inode_lock include/linux/fs.h:867 [inline] ffff0000ddb85870 (&sb->s_type->i_mutex_key#20){+.+.}-{4:4}, at: jfs_fsync+0x9c/0x1d0 fs/jfs/file.c:28 other info that might help us debug this: context-{3:3} 2 locks held by kworker/u8:3/45: #0: ffff0000d2fca948 ((wq_completion)loop0){+.+.}-{0:0}, at: process_one_work+0x658/0x156c kernel/workqueue.c:3212 #1: ffff800097d67bc0 ((work_completion)(&worker->work)){+.+.}-{0:0}, at: process_one_work+0x6ec/0x156c kernel/workqueue.c:3212 stack backtrace: CPU: 0 UID: 0 PID: 45 Comm: kworker/u8:3 Tainted: G W 6.15.0-rc6-syzkaller-gc919f08732cc #0 PREEMPT Tainted: [W]=WARN Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Workqueue: loop0 loop_workfn Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:466 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 print_lock_invalid_wait_context kernel/locking/lockdep.c:4831 [inline] check_wait_context kernel/locking/lockdep.c:4903 [inline] __lock_acquire+0xaa0/0x3058 kernel/locking/lockdep.c:5185 lock_acquire+0x14c/0x2e0 kernel/locking/lockdep.c:5866 down_write+0x50/0xc0 kernel/locking/rwsem.c:1577 inode_lock include/linux/fs.h:867 [inline] jfs_fsync+0x9c/0x1d0 fs/jfs/file.c:28 vfs_fsync_range+0x160/0x19c fs/sync.c:187 generic_write_sync include/linux/fs.h:2976 [inline] dio_complete+0x510/0x6bc fs/direct-io.c:313 dio_bio_end_aio+0x474/0x544 fs/direct-io.c:368 bio_endio+0x81c/0x858 block/bio.c:1551 blk_update_request+0x4a4/0xbcc block/blk-mq.c:983 blk_mq_end_request+0x54/0x88 block/blk-mq.c:1145 lo_complete_rq+0x124/0x274 drivers/block/loop.c:304 blk_complete_reqs block/blk-mq.c:1220 [inline] blk_done_softirq+0x11c/0x168 block/blk-mq.c:1225 handle_softirqs+0x328/0xc88 kernel/softirq.c:579 __do_softirq+0x14/0x20 kernel/softirq.c:613 ____do_softirq+0x14/0x20 arch/arm64/kernel/irq.c:81 call_on_irq_stack+0x24/0x30 arch/arm64/kernel/entry.S:891 do_softirq_own_stack+0x20/0x2c arch/arm64/kernel/irq.c:86 invoke_softirq kernel/softirq.c:460 [inline] __irq_exit_rcu+0x1b0/0x478 kernel/softirq.c:680 irq_exit_rcu+0x14/0x84 kernel/softirq.c:696 __el1_irq arch/arm64/kernel/entry-common.c:584 [inline] el1_interrupt+0x38/0x54 arch/arm64/kernel/entry-common.c:598 el1h_64_irq_handler+0x18/0x24 arch/arm64/kernel/entry-common.c:603 el1h_64_irq+0x6c/0x70 arch/arm64/kernel/entry.S:596 __daif_local_irq_enable arch/arm64/include/asm/irqflags.h:26 [inline] (P) arch_local_irq_enable arch/arm64/include/asm/irqflags.h:48 [inline] (P) __raw_spin_unlock_irq include/linux/spinlock_api_smp.h:159 [inline] (P) _raw_spin_unlock_irq+0x34/0x80 kernel/locking/spinlock.c:202 (P) spin_unlock_irq include/linux/spinlock.h:401 [inline] loop_process_work+0x1b4/0xfc0 drivers/block/loop.c:1922 loop_workfn+0x50/0x64 drivers/block/loop.c:1948 process_one_work+0x7e8/0x156c kernel/workqueue.c:3238 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x958/0xed8 kernel/workqueue.c:3400 kthread+0x5fc/0x75c kernel/kthread.c:464 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:847 BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1576 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 15, name: ksoftirqd/0 preempt_count: 100, expected: 0 RCU nest depth: 0, expected: 0 INFO: lockdep is turned off. Preemption disabled at: [] softirq_handle_begin kernel/softirq.c:420 [inline] [] handle_softirqs+0xe8/0xc88 kernel/softirq.c:555 CPU: 0 UID: 0 PID: 15 Comm: ksoftirqd/0 Tainted: G W 6.15.0-rc6-syzkaller-gc919f08732cc #0 PREEMPT Tainted: [W]=WARN Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:466 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 __might_resched+0x348/0x4c4 kernel/sched/core.c:8818 __might_sleep+0x94/0x110 kernel/sched/core.c:8747 down_write+0x28/0xc0 kernel/locking/rwsem.c:1576 inode_lock include/linux/fs.h:867 [inline] jfs_fsync+0x9c/0x1d0 fs/jfs/file.c:28 vfs_fsync_range+0x160/0x19c fs/sync.c:187 generic_write_sync include/linux/fs.h:2976 [inline] dio_complete+0x510/0x6bc fs/direct-io.c:313 dio_bio_end_aio+0x474/0x544 fs/direct-io.c:368 bio_endio+0x81c/0x858 block/bio.c:1551 blk_update_request+0x4a4/0xbcc block/blk-mq.c:983 blk_mq_end_request+0x54/0x88 block/blk-mq.c:1145 lo_complete_rq+0x124/0x274 drivers/block/loop.c:304 blk_complete_reqs block/blk-mq.c:1220 [inline] blk_done_softirq+0x11c/0x168 block/blk-mq.c:1225 handle_softirqs+0x328/0xc88 kernel/softirq.c:579 run_ksoftirqd+0x70/0xc0 kernel/softirq.c:968 smpboot_thread_fn+0x4d8/0x9cc kernel/smpboot.c:164 kthread+0x5fc/0x75c kernel/kthread.c:464 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:847 BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1576 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 15, name: ksoftirqd/0 preempt_count: 100, expected: 0 RCU nest depth: 0, expected: 0 INFO: lockdep is turned off. Preemption disabled at: [] softirq_handle_begin kernel/softirq.c:420 [inline] [] handle_softirqs+0xe8/0xc88 kernel/softirq.c:555 CPU: 0 UID: 0 PID: 15 Comm: ksoftirqd/0 Tainted: G W 6.15.0-rc6-syzkaller-gc919f08732cc #0 PREEMPT Tainted: [W]=WARN Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:466 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 __might_resched+0x348/0x4c4 kernel/sched/core.c:8818 __might_sleep+0x94/0x110 kernel/sched/core.c:8747 down_write+0x28/0xc0 kernel/locking/rwsem.c:1576 inode_lock include/linux/fs.h:867 [inline] jfs_fsync+0x9c/0x1d0 fs/jfs/file.c:28 vfs_fsync_range+0x160/0x19c fs/sync.c:187 generic_write_sync include/linux/fs.h:2976 [inline] dio_complete+0x510/0x6bc fs/direct-io.c:313 dio_bio_end_aio+0x474/0x544 fs/direct-io.c:368 bio_endio+0x81c/0x858 block/bio.c:1551 blk_update_request+0x4a4/0xbcc block/blk-mq.c:983 blk_mq_end_request+0x54/0x88 block/blk-mq.c:1145 lo_complete_rq+0x124/0x274 drivers/block/loop.c:304 blk_complete_reqs block/blk-mq.c:1220 [inline] blk_done_softirq+0x11c/0x168 block/blk-mq.c:1225 handle_softirqs+0x328/0xc88 kernel/softirq.c:579 run_ksoftirqd+0x70/0xc0 kernel/softirq.c:968 smpboot_thread_fn+0x4d8/0x9cc kernel/smpboot.c:164 kthread+0x5fc/0x75c kernel/kthread.c:464 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:847