BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1523 in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 42, name: kworker/0:1H preempt_count: 0, expected: 0 RCU nest depth: 1, expected: 0 3 locks held by kworker/0:1H/42: #0: ffff88801c2bcd48 ((wq_completion)kblockd){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3211 [inline] #0: ffff88801c2bcd48 ((wq_completion)kblockd){+.+.}-{0:0}, at: process_scheduled_works+0x93b/0x1840 kernel/workqueue.c:3317 #1: ffffc90000b27c60 ((work_completion)(&(&hctx->run_work)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3212 [inline] #1: ffffc90000b27c60 ((work_completion)(&(&hctx->run_work)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x976/0x1840 kernel/workqueue.c:3317 #2: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #2: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #2: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: blk_mq_run_work_fn+0x9b/0x300 block/blk-mq.c:2530 CPU: 0 UID: 0 PID: 42 Comm: kworker/0:1H Not tainted 6.14.0-rc1-next-20250204-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024 Workqueue: kblockd blk_mq_run_work_fn Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 __might_resched+0x5d4/0x780 kernel/sched/core.c:8766 down_read+0x8e/0xa40 kernel/locking/rwsem.c:1523 i_mmap_lock_read include/linux/fs.h:565 [inline] unmap_mapping_folio+0x284/0x3b0 mm/memory.c:3887 folio_unmap_invalidate+0x122/0x510 mm/truncate.c:557 folio_end_reclaim_write mm/filemap.c:1609 [inline] folio_end_writeback+0x430/0x560 mm/filemap.c:1642 end_bio_bh_io_sync+0xbf/0x120 fs/buffer.c:2766 blk_update_request+0x5e5/0x1160 block/blk-mq.c:983 blk_mq_end_request+0x3e/0x70 block/blk-mq.c:1145 nullb_complete_cmd drivers/block/null_blk/main.c:1354 [inline] null_handle_cmd drivers/block/null_blk/main.c:1405 [inline] null_queue_rq+0xbb1/0xd60 drivers/block/null_blk/main.c:1645 blk_mq_dispatch_rq_list+0xad3/0x19d0 block/blk-mq.c:2120 __blk_mq_sched_dispatch_requests+0x169c/0x1840 block/blk-mq-sched.c:315 blk_mq_sched_dispatch_requests+0xd6/0x190 block/blk-mq-sched.c:331 blk_mq_run_work_fn+0x232/0x300 block/blk-mq.c:2530 process_one_work kernel/workqueue.c:3236 [inline] process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3317 worker_thread+0x870/0xd30 kernel/workqueue.c:3398 kthread+0x7a9/0x920 kernel/kthread.c:464 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 ============================= [ BUG: Invalid wait context ] 6.14.0-rc1-next-20250204-syzkaller #0 Tainted: G W ----------------------------- kworker/0:1H/42 is trying to lock: ffff88802351acf0 (&mapping->i_mmap_rwsem){++++}-{4:4}, at: i_mmap_lock_read include/linux/fs.h:565 [inline] ffff88802351acf0 (&mapping->i_mmap_rwsem){++++}-{4:4}, at: unmap_mapping_folio+0x284/0x3b0 mm/memory.c:3887 other info that might help us debug this: context-{5:5} 3 locks held by kworker/0:1H/42: #0: ffff88801c2bcd48 ((wq_completion)kblockd){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3211 [inline] #0: ffff88801c2bcd48 ((wq_completion)kblockd){+.+.}-{0:0}, at: process_scheduled_works+0x93b/0x1840 kernel/workqueue.c:3317 #1: ffffc90000b27c60 ((work_completion)(&(&hctx->run_work)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3212 [inline] #1: ffffc90000b27c60 ((work_completion)(&(&hctx->run_work)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x976/0x1840 kernel/workqueue.c:3317 #2: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #2: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #2: ffffffff8e938960 (rcu_read_lock){....}-{1:3}, at: blk_mq_run_work_fn+0x9b/0x300 block/blk-mq.c:2530 stack backtrace: CPU: 0 UID: 0 PID: 42 Comm: kworker/0:1H Tainted: G W 6.14.0-rc1-next-20250204-syzkaller #0 Tainted: [W]=WARN Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024 Workqueue: kblockd blk_mq_run_work_fn Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 print_lock_invalid_wait_context kernel/locking/lockdep.c:4828 [inline] check_wait_context kernel/locking/lockdep.c:4900 [inline] __lock_acquire+0x15a8/0x2100 kernel/locking/lockdep.c:5178 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5851 down_read+0xb1/0xa40 kernel/locking/rwsem.c:1524 i_mmap_lock_read include/linux/fs.h:565 [inline] unmap_mapping_folio+0x284/0x3b0 mm/memory.c:3887 folio_unmap_invalidate+0x122/0x510 mm/truncate.c:557 folio_end_reclaim_write mm/filemap.c:1609 [inline] folio_end_writeback+0x430/0x560 mm/filemap.c:1642 end_bio_bh_io_sync+0xbf/0x120 fs/buffer.c:2766 blk_update_request+0x5e5/0x1160 block/blk-mq.c:983 blk_mq_end_request+0x3e/0x70 block/blk-mq.c:1145 nullb_complete_cmd drivers/block/null_blk/main.c:1354 [inline] null_handle_cmd drivers/block/null_blk/main.c:1405 [inline] null_queue_rq+0xbb1/0xd60 drivers/block/null_blk/main.c:1645 blk_mq_dispatch_rq_list+0xad3/0x19d0 block/blk-mq.c:2120 __blk_mq_sched_dispatch_requests+0x169c/0x1840 block/blk-mq-sched.c:315 blk_mq_sched_dispatch_requests+0xd6/0x190 block/blk-mq-sched.c:331 blk_mq_run_work_fn+0x232/0x300 block/blk-mq.c:2530 process_one_work kernel/workqueue.c:3236 [inline] process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3317 worker_thread+0x870/0xd30 kernel/workqueue.c:3398 kthread+0x7a9/0x920 kernel/kthread.c:464 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244