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