========================= WARNING: held lock freed! syzkaller #0 Not tainted ------------------------- gfs2_quotad/7952 is freeing memory ffff8880530eb5c0-ffff8880530ebbf7, with a lock still held there! ffff8880530eb710 (&gfs2_quota_imutex_key){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:758 [inline] ffff8880530eb710 (&gfs2_quota_imutex_key){+.+.}-{3:3}, at: do_sync+0x36b/0xc40 fs/gfs2/quota.c:919 3 locks held by gfs2_quotad/7952: #0: ffff8880769e8b70 (&sdp->sd_quota_sync_mutex){+.+.}-{3:3}, at: gfs2_quota_sync+0x91/0x700 fs/gfs2/quota.c:1313 #1: ffff8880530eb710 (&gfs2_quota_imutex_key){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:758 [inline] #1: ffff8880530eb710 (&gfs2_quota_imutex_key){+.+.}-{3:3}, at: do_sync+0x36b/0xc40 fs/gfs2/quota.c:919 #2: ffffffff8cb2df80 (rcu_callback){....}-{0:0}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline] #2: ffffffff8cb2df80 (rcu_callback){....}-{0:0}, at: rcu_do_batch kernel/rcu/tree.c:2291 [inline] #2: ffffffff8cb2df80 (rcu_callback){....}-{0:0}, at: rcu_core+0xa29/0x1740 kernel/rcu/tree.c:2557 stack backtrace: CPU: 0 PID: 7952 Comm: gfs2_quotad Not tainted syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/09/2026 Call Trace: dump_stack_lvl+0x188/0x24e lib/dump_stack.c:106 print_freed_lock_bug kernel/locking/lockdep.c:6437 [inline] debug_check_no_locks_freed+0x301/0x3e0 kernel/locking/lockdep.c:6470 slab_free_hook mm/slub.c:1701 [inline] slab_free_freelist_hook+0xc1/0x1a0 mm/slub.c:1755 slab_free mm/slub.c:3687 [inline] kmem_cache_free+0xf7/0x290 mm/slub.c:3709 rcu_do_batch kernel/rcu/tree.c:2297 [inline] rcu_core+0xa99/0x1740 kernel/rcu/tree.c:2557 handle_softirqs+0x2a1/0x930 kernel/softirq.c:596 __do_softirq kernel/softirq.c:630 [inline] invoke_softirq kernel/softirq.c:470 [inline] __irq_exit_rcu+0x13b/0x230 kernel/softirq.c:679 irq_exit_rcu+0x5/0x20 kernel/softirq.c:691 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1118 [inline] sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1118 asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:691 RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:152 [inline] RIP: 0010:_raw_spin_unlock_irqrestore+0xbc/0x120 kernel/locking/spinlock.c:194 Code: c7 44 24 20 00 00 00 00 9c 8f 44 24 20 f7 44 24 20 00 02 00 00 41 c6 04 07 f8 75 4b f7 c3 00 02 00 00 74 01 fb bf 01 00 00 00 af 7f 1f f7 65 8b 05 80 ff c8 75 85 c0 74 3c 48 c7 04 24 0e 36 RSP: 0018:ffffc90004caf9c0 EFLAGS: 00000206 RAX: dffffc0000000004 RBX: 0000000000000a02 RCX: 99a4e25d04666b00 RDX: dffffc0000000000 RSI: ffffffff8a8c1aa0 RDI: 0000000000000001 RBP: ffffc90004cafa50 R08: ffffffff90aff45f R09: 1ffffffff215fe8b R10: dffffc0000000000 R11: fffffbfff215fe8c R12: dffffc0000000000 R13: 0000000000000a02 R14: ffff8880769e8500 R15: 1ffff92000995f38 spin_unlock_irqrestore include/linux/spinlock.h:406 [inline] __wake_up_common_lock kernel/sched/wait.c:140 [inline] __wake_up+0x12e/0x1a0 kernel/sched/wait.c:160 gfs2_glock_put fs/gfs2/glock.c:314 [inline] gfs2_holder_uninit fs/gfs2/glock.c:1304 [inline] gfs2_glock_dq_uninit+0xd0/0xe0 fs/gfs2/glock.c:1739 do_sync+0x92a/0xc40 fs/gfs2/quota.c:983 gfs2_quota_sync+0x32c/0x700 fs/gfs2/quota.c:1329 quotad_check_timeo fs/gfs2/quota.c:1519 [inline] gfs2_quotad+0x420/0x680 fs/gfs2/quota.c:1566 kthread+0x29d/0x330 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 ---------------- Code disassembly (best guess): 0: c7 44 24 20 00 00 00 movl $0x0,0x20(%rsp) 7: 00 8: 9c pushf 9: 8f 44 24 20 pop 0x20(%rsp) d: f7 44 24 20 00 02 00 testl $0x200,0x20(%rsp) 14: 00 15: 41 c6 04 07 f8 movb $0xf8,(%r15,%rax,1) 1a: 75 4b jne 0x67 1c: f7 c3 00 02 00 00 test $0x200,%ebx 22: 74 01 je 0x25 24: fb sti 25: bf 01 00 00 00 mov $0x1,%edi * 2a: e8 af 7f 1f f7 call 0xf71f7fde <-- trapping instruction 2f: 65 8b 05 80 ff c8 75 mov %gs:0x75c8ff80(%rip),%eax # 0x75c8ffb6 36: 85 c0 test %eax,%eax 38: 74 3c je 0x76 3a: 48 rex.W 3b: c7 .byte 0xc7 3c: 04 24 add $0x24,%al 3e: 0e (bad) 3f: 36 ss