function = gfs2_meta_buffer, file = fs/gfs2/meta_io.c, line = 493 gfs2: fsid=syz:syz.0: about to withdraw this file system ============================================ WARNING: possible recursive locking detected 5.15.182-syzkaller #0 Not tainted -------------------------------------------- kworker/1:10/4222 is trying to acquire lock: ffff0000c6b53538 ((wq_completion)delete_workqueue){+.+.}-{0:0}, at: flush_workqueue+0xf4/0x1024 kernel/workqueue.c:2827 but task is already holding lock: ffff0000c6b53538 ((wq_completion)delete_workqueue){+.+.}-{0:0}, at: process_one_work+0x678/0x1140 kernel/workqueue.c:2283 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock((wq_completion)delete_workqueue); lock((wq_completion)delete_workqueue); *** DEADLOCK *** May be due to missing lock nesting notation 2 locks held by kworker/1:10/4222: #0: ffff0000c6b53538 ((wq_completion)delete_workqueue){+.+.}-{0:0}, at: process_one_work+0x678/0x1140 kernel/workqueue.c:2283 #1: ffff80001fff7c00 ((work_completion)(&(&gl->gl_delete)->work)){+.+.}-{0:0}, at: process_one_work+0x6b8/0x1140 kernel/workqueue.c:2285 stack backtrace: CPU: 1 PID: 4222 Comm: kworker/1:10 Not tainted 5.15.182-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/19/2025 Workqueue: delete_workqueue delete_work_func Call trace: dump_backtrace+0x0/0x43c arch/arm64/kernel/stacktrace.c:152 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:216 __dump_stack+0x30/0x40 lib/dump_stack.c:88 dump_stack_lvl+0xf8/0x160 lib/dump_stack.c:106 dump_stack+0x1c/0x5c lib/dump_stack.c:113 __lock_acquire+0x18a4/0x651c kernel/locking/lockdep.c:-1 lock_acquire+0x1f4/0x620 kernel/locking/lockdep.c:5623 flush_workqueue+0x11c/0x1024 kernel/workqueue.c:2830 gfs2_flush_delete_work+0x34/0x44 fs/gfs2/glock.c:2108 gfs2_make_fs_ro+0xb4/0x51c fs/gfs2/super.c:529 signal_our_withdraw fs/gfs2/util.c:166 [inline] gfs2_withdraw+0x4cc/0x129c fs/gfs2/util.c:343 gfs2_meta_check_ii+0x80/0x9c fs/gfs2/util.c:498 gfs2_metatype_check_i fs/gfs2/util.h:126 [inline] gfs2_meta_buffer+0x228/0x2ec fs/gfs2/meta_io.c:493 gfs2_meta_inode_buffer fs/gfs2/meta_io.h:70 [inline] gfs2_inode_refresh+0xac/0xda8 fs/gfs2/glops.c:481 gfs2_inode_lookup+0x69c/0xb64 fs/gfs2/inode.c:199 gfs2_lookup_by_inum+0x60/0xf8 fs/gfs2/inode.c:250 delete_work_func+0x148/0x52c fs/gfs2/glock.c:1004 process_one_work+0x79c/0x1140 kernel/workqueue.c:2310 worker_thread+0x8f4/0x101c kernel/workqueue.c:2457 kthread+0x374/0x454 kernel/kthread.c:334 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:870