* Re: [syzbot] [xfs?] inconsistent lock state in igrab
2026-02-14 4:57 [syzbot] [xfs?] inconsistent lock state in igrab syzbot
@ 2026-02-14 8:18 ` syzbot
2026-02-14 12:00 ` Forwarded: Private message regarding: " syzbot
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: syzbot @ 2026-02-14 8:18 UTC (permalink / raw)
To: cem, linux-kernel, linux-xfs, syzkaller-bugs
syzbot has found a reproducer for the following issue on:
HEAD commit: cd7a5651db26 alpha: add missing address argument in call t..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13b47e5a580000
kernel config: https://syzkaller.appspot.com/x/.config?x=e600149b13c010eb
dashboard link: https://syzkaller.appspot.com/bug?extid=5eb0d61dfb76ca12670c
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=15df8722580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17f362aa580000
Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/ea46ed04f19d/disk-cd7a5651.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/ee7aa4ba7700/vmlinux-cd7a5651.xz
kernel image: https://storage.googleapis.com/syzbot-assets/70280d10edbe/bzImage-cd7a5651.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/41cb64e4f612/mount_0.gz
fsck result: failed (log: https://syzkaller.appspot.com/x/fsck.log?x=1105a6e6580000)
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+5eb0d61dfb76ca12670c@syzkaller.appspotmail.com
I/O error, dev loop0, sector 512 op 0x0:(READ) flags 0x880700 phys_seg 1 prio class 2
I/O error, dev loop0, sector 18692 op 0x0:(READ) flags 0x880700 phys_seg 1 prio class 2
================================
WARNING: inconsistent lock state
syzkaller #0 Not tainted
--------------------------------
inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
ksoftirqd/0/15 [HC0[0]:SC1[1]:HE1:SE0] takes:
ffff888059619180 (&sb->s_type->i_lock_key#36){+.?.}-{3:3}, at: spin_lock include/linux/spinlock.h:341 [inline]
ffff888059619180 (&sb->s_type->i_lock_key#36){+.?.}-{3:3}, at: igrab+0x2a/0x230 fs/inode.c:1583
{SOFTIRQ-ON-W} state was registered at:
lock_acquire kernel/locking/lockdep.c:5868 [inline]
lock_acquire+0x17c/0x330 kernel/locking/lockdep.c:5825
__raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
_raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154
spin_lock include/linux/spinlock.h:341 [inline]
unlock_new_inode+0x7a/0x330 fs/inode.c:1222
xfs_finish_inode_setup fs/xfs/xfs_inode.h:630 [inline]
xfs_setup_existing_inode fs/xfs/xfs_inode.h:637 [inline]
xfs_iget+0x1196/0x30f0 fs/xfs/xfs_icache.c:814
xfs_mountfs+0x108c/0x20b0 fs/xfs/xfs_mount.c:1072
xfs_fs_fill_super+0x153f/0x1f20 fs/xfs/xfs_super.c:1938
get_tree_bdev_flags+0x38c/0x620 fs/super.c:1694
vfs_get_tree+0x92/0x320 fs/super.c:1754
fc_mount fs/namespace.c:1193 [inline]
do_new_mount_fc fs/namespace.c:3760 [inline]
do_new_mount fs/namespace.c:3836 [inline]
path_mount+0x7d0/0x23d0 fs/namespace.c:4146
do_mount fs/namespace.c:4159 [inline]
__do_sys_mount fs/namespace.c:4348 [inline]
__se_sys_mount fs/namespace.c:4325 [inline]
__x64_sys_mount+0x293/0x310 fs/namespace.c:4325
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0x106/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
irq event stamp: 972992
hardirqs last enabled at (972992): [<ffffffff8b820072>] __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:178 [inline]
hardirqs last enabled at (972992): [<ffffffff8b820072>] _raw_spin_unlock_irqrestore+0x52/0x80 kernel/locking/spinlock.c:194
hardirqs last disabled at (972991): [<ffffffff8b81fd82>] __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:130 [inline]
hardirqs last disabled at (972991): [<ffffffff8b81fd82>] _raw_spin_lock_irqsave+0x52/0x60 kernel/locking/spinlock.c:162
softirqs last enabled at (972968): [<ffffffff81c7bb68>] run_ksoftirqd kernel/softirq.c:1063 [inline]
softirqs last enabled at (972968): [<ffffffff81c7bb68>] run_ksoftirqd+0x38/0x60 kernel/softirq.c:1055
softirqs last disabled at (972973): [<ffffffff81c7bb68>] run_ksoftirqd kernel/softirq.c:1063 [inline]
softirqs last disabled at (972973): [<ffffffff81c7bb68>] run_ksoftirqd+0x38/0x60 kernel/softirq.c:1055
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&sb->s_type->i_lock_key#36);
<Interrupt>
lock(&sb->s_type->i_lock_key#36);
*** DEADLOCK ***
no locks held by ksoftirqd/0/15.
stack backtrace:
CPU: 0 UID: 0 PID: 15 Comm: ksoftirqd/0 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2026
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
print_usage_bug.part.0+0x257/0x340 kernel/locking/lockdep.c:4042
print_usage_bug kernel/locking/lockdep.c:4010 [inline]
valid_state kernel/locking/lockdep.c:4056 [inline]
mark_lock_irq kernel/locking/lockdep.c:4267 [inline]
mark_lock+0x74a/0xa20 kernel/locking/lockdep.c:4753
mark_usage kernel/locking/lockdep.c:4642 [inline]
__lock_acquire+0x103a/0x2630 kernel/locking/lockdep.c:5191
lock_acquire kernel/locking/lockdep.c:5868 [inline]
lock_acquire+0x17c/0x330 kernel/locking/lockdep.c:5825
__raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
_raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154
spin_lock include/linux/spinlock.h:341 [inline]
igrab+0x2a/0x230 fs/inode.c:1583
fserror_report+0x3fd/0x750 fs/fserror.c:159
fserror_report_io include/linux/fserror.h:48 [inline]
iomap_finish_folio_read+0x168/0x2c0 fs/iomap/buffered-io.c:407
iomap_read_end_io+0x11a/0x430 fs/iomap/bio.c:17
bio_endio+0x755/0x8b0 block/bio.c:1790
blk_update_request+0x741/0x1330 block/blk-mq.c:1016
blk_mq_end_request+0x5b/0x420 block/blk-mq.c:1178
lo_complete_rq+0x1d4/0x2a0 drivers/block/loop.c:314
blk_complete_reqs+0xb1/0xf0 block/blk-mq.c:1253
handle_softirqs+0x1ea/0x910 kernel/softirq.c:622
run_ksoftirqd kernel/softirq.c:1063 [inline]
run_ksoftirqd+0x38/0x60 kernel/softirq.c:1055
smpboot_thread_fn+0x3d3/0xaa0 kernel/smpboot.c:160
kthread+0x370/0x450 kernel/kthread.c:467
ret_from_fork+0x754/0xd80 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
^ permalink raw reply [flat|nested] 8+ messages in thread* Forwarded: Private message regarding: [syzbot] [xfs?] inconsistent lock state in igrab
2026-02-14 4:57 [syzbot] [xfs?] inconsistent lock state in igrab syzbot
2026-02-14 8:18 ` syzbot
@ 2026-02-14 12:00 ` syzbot
2026-02-14 12:05 ` syzbot
2026-02-14 16:16 ` Forwarded: " syzbot
3 siblings, 0 replies; 8+ messages in thread
From: syzbot @ 2026-02-14 12:00 UTC (permalink / raw)
To: linux-kernel, syzkaller-bugs
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.
***
Subject: Private message regarding: [syzbot] [xfs?] inconsistent lock state in igrab
Author: kapoorarnav43@gmail.com
#syz test
From 7e7a6c0e2d9a2d7b9f9a4f5b1b0f2a1c7f0a1234 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: Sat, 14 Feb 2026 12:00:00 +0000
Subject: [PATCH] fs: fserror: avoid igrab in atomic contexts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
fserror_report() can be called from softirq/atomic contexts (e.g. I/O
endio paths). Using igrab() there takes i_lock, which is also acquired
with softirqs enabled in process context, triggering lockdep warnings
and a potential softirq recursion deadlock.
All fserror_report() callers already hold a live reference to the inode,
so use ihold() to take a safe reference without grabbing i_lock.
Reported-by: syzbot+5eb0d61dfb76ca12670c@syzkaller.appspotmail.com
Signed-off-by: Your Name <you@example.com>
---
fs/fserror.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/fs/fserror.c b/fs/fserror.c
index 0123456789ab..fedcba987654 100644
--- a/fs/fserror.c
+++ b/fs/fserror.c
@@ -159,16 +159,13 @@ void fserror_report(struct super_block *sb, struct
inode *inode,
event->len = len;
event->error = error;
/*
- * Can't iput from non-sleeping context, so grabbing another reference
- * to the inode must be the last thing before submitting the event.
+ * Can't iput from non-sleeping context, so grabbing another reference
+ * to the inode must be the last thing before submitting the event.
+ * The caller must hold a live reference if @inode is provided.
*/
if (inode) {
- event->inode = igrab(inode);
- if (!event->inode)
- goto lost_event;
+ ihold(inode);
+ event->inode = inode;
}
/*
@@ -184,9 +181,7 @@ void fserror_report(struct super_block *sb, struct
inode *inode,
schedule_work(&event->work);
return;
-lost_event:
- fserror_free_event(event);
lost:
if (inode)
pr_err_ratelimited("%s: lost file I/O error report for ino %lu
type %u pos 0x%llx len 0x%llx error %d",
--
2.43.0
On Saturday, 14 February 2026 at 13:48:38 UTC+5:30 syzbot wrote:
syzbot has found a reproducer for the following issue on:
HEAD commit: cd7a5651db26 alpha: add missing address argument in call t..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13b47e5a580000
kernel config: https://syzkaller.appspot.com/x/.config?x=e600149b13c010eb
dashboard link: https://syzkaller.appspot.com/bug?extid=5eb0d61dfb76ca12670c
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian)
2.44
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=15df8722580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17f362aa580000
Downloadable assets:
disk image:
https://storage.googleapis.com/syzbot-assets/ea46ed04f19d/disk-cd7a5651.raw.xz
vmlinux:
https://storage.googleapis.com/syzbot-assets/ee7aa4ba7700/vmlinux-cd7a5651.xz
kernel image:
https://storage.googleapis.com/syzbot-assets/70280d10edbe/bzImage-cd7a5651.xz
mounted in repro:
https://storage.googleapis.com/syzbot-assets/41cb64e4f612/mount_0.gz
fsck result: failed (log:
https://syzkaller.appspot.com/x/fsck.log?x=1105a6e6580000)
IMPORTANT: if you fix the issue, please add the following tag to the
commit:
Reported-by: syzbot+5eb0d6...@syzkaller.appspotmail.com
I/O error, dev loop0, sector 512 op 0x0:(READ) flags 0x880700 phys_seg 1
prio class 2
I/O error, dev loop0, sector 18692 op 0x0:(READ) flags 0x880700 phys_seg 1
prio class 2
================================
WARNING: inconsistent lock state
syzkaller #0 Not tainted
--------------------------------
inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
ksoftirqd/0/15 [HC0[0]:SC1[1]:HE1:SE0] takes:
ffff888059619180 (&sb->s_type->i_lock_key#36){+.?.}-{3:3}, at: spin_lock
include/linux/spinlock.h:341 [inline]
ffff888059619180 (&sb->s_type->i_lock_key#36){+.?.}-{3:3}, at:
igrab+0x2a/0x230 fs/inode.c:1583
{SOFTIRQ-ON-W} state was registered at:
lock_acquire kernel/locking/lockdep.c:5868 [inline]
lock_acquire+0x17c/0x330 kernel/locking/lockdep.c:5825
__raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
_raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154
spin_lock include/linux/spinlock.h:341 [inline]
unlock_new_inode+0x7a/0x330 fs/inode.c:1222
xfs_finish_inode_setup fs/xfs/xfs_inode.h:630 [inline]
xfs_setup_existing_inode fs/xfs/xfs_inode.h:637 [inline]
xfs_iget+0x1196/0x30f0 fs/xfs/xfs_icache.c:814
xfs_mountfs+0x108c/0x20b0 fs/xfs/xfs_mount.c:1072
xfs_fs_fill_super+0x153f/0x1f20 fs/xfs/xfs_super.c:1938
get_tree_bdev_flags+0x38c/0x620 fs/super.c:1694
vfs_get_tree+0x92/0x320 fs/super.c:1754
fc_mount fs/namespace.c:1193 [inline]
do_new_mount_fc fs/namespace.c:3760 [inline]
do_new_mount fs/namespace.c:3836 [inline]
path_mount+0x7d0/0x23d0 fs/namespace.c:4146
do_mount fs/namespace.c:4159 [inline]
__do_sys_mount fs/namespace.c:4348 [inline]
__se_sys_mount fs/namespace.c:4325 [inline]
__x64_sys_mount+0x293/0x310 fs/namespace.c:4325
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0x106/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
irq event stamp: 972992
hardirqs last enabled at (972992): [<ffffffff8b820072>]
__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:178 [inline]
hardirqs last enabled at (972992): [<ffffffff8b820072>]
_raw_spin_unlock_irqrestore+0x52/0x80 kernel/locking/spinlock.c:194
hardirqs last disabled at (972991): [<ffffffff8b81fd82>]
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:130 [inline]
hardirqs last disabled at (972991): [<ffffffff8b81fd82>]
_raw_spin_lock_irqsave+0x52/0x60 kernel/locking/spinlock.c:162
softirqs last enabled at (972968): [<ffffffff81c7bb68>] run_ksoftirqd
kernel/softirq.c:1063 [inline]
softirqs last enabled at (972968): [<ffffffff81c7bb68>]
run_ksoftirqd+0x38/0x60 kernel/softirq.c:1055
softirqs last disabled at (972973): [<ffffffff81c7bb68>] run_ksoftirqd
kernel/softirq.c:1063 [inline]
softirqs last disabled at (972973): [<ffffffff81c7bb68>]
run_ksoftirqd+0x38/0x60 kernel/softirq.c:1055
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&sb->s_type->i_lock_key#36);
<Interrupt>
lock(&sb->s_type->i_lock_key#36);
*** DEADLOCK ***
no locks held by ksoftirqd/0/15.
stack backtrace:
CPU: 0 UID: 0 PID: 15 Comm: ksoftirqd/0 Not tainted syzkaller #0
PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 02/12/2026
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
print_usage_bug.part.0+0x257/0x340 kernel/locking/lockdep.c:4042
print_usage_bug kernel/locking/lockdep.c:4010 [inline]
valid_state kernel/locking/lockdep.c:4056 [inline]
mark_lock_irq kernel/locking/lockdep.c:4267 [inline]
mark_lock+0x74a/0xa20 kernel/locking/lockdep.c:4753
mark_usage kernel/locking/lockdep.c:4642 [inline]
__lock_acquire+0x103a/0x2630 kernel/locking/lockdep.c:5191
lock_acquire kernel/locking/lockdep.c:5868 [inline]
lock_acquire+0x17c/0x330 kernel/locking/lockdep.c:5825
__raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
_raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154
spin_lock include/linux/spinlock.h:341 [inline]
igrab+0x2a/0x230 fs/inode.c:1583
fserror_report+0x3fd/0x750 fs/fserror.c:159
fserror_report_io include/linux/fserror.h:48 [inline]
iomap_finish_folio_read+0x168/0x2c0 fs/iomap/buffered-io.c:407
iomap_read_end_io+0x11a/0x430 fs/iomap/bio.c:17
bio_endio+0x755/0x8b0 block/bio.c:1790
blk_update_request+0x741/0x1330 block/blk-mq.c:1016
blk_mq_end_request+0x5b/0x420 block/blk-mq.c:1178
lo_complete_rq+0x1d4/0x2a0 drivers/block/loop.c:314
blk_complete_reqs+0xb1/0xf0 block/blk-mq.c:1253
handle_softirqs+0x1ea/0x910 kernel/softirq.c:622
run_ksoftirqd kernel/softirq.c:1063 [inline]
run_ksoftirqd+0x38/0x60 kernel/softirq.c:1055
smpboot_thread_fn+0x3d3/0xaa0 kernel/smpboot.c:160
kthread+0x370/0x450 kernel/kthread.c:467
ret_from_fork+0x754/0xd80 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
^ permalink raw reply related [flat|nested] 8+ messages in thread* Forwarded: Private message regarding: [syzbot] [xfs?] inconsistent lock state in igrab
2026-02-14 4:57 [syzbot] [xfs?] inconsistent lock state in igrab syzbot
2026-02-14 8:18 ` syzbot
2026-02-14 12:00 ` Forwarded: Private message regarding: " syzbot
@ 2026-02-14 12:05 ` syzbot
2026-02-14 16:16 ` Forwarded: " syzbot
3 siblings, 0 replies; 8+ messages in thread
From: syzbot @ 2026-02-14 12:05 UTC (permalink / raw)
To: linux-kernel, syzkaller-bugs
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.
***
Subject: Private message regarding: [syzbot] [xfs?] inconsistent lock state in igrab
Author: kapoorarnav43@gmail.com
#syz test
From 7e7a6c0e2d9a2d7b9f9a4f5b1b0f2a1c7f0a1234 Mon Sep 17 00:00:00 2001
From: Arnav Kapoor <arnav@example.com>
Date: Sat, 14 Feb 2026 17:35:00 +0000
Subject: [PATCH] fs: fserror: avoid igrab in atomic contexts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
fserror_report() can be called from softirq/atomic contexts. Using
igrab() there takes i_lock, which is also acquired with softirqs enabled
in process context, triggering lockdep warnings and a potential softirq
recursion deadlock.
All fserror_report() callers already hold a live reference to the inode,
so use ihold() to take a safe reference without grabbing i_lock.
Reported-by: syzbot+5eb0d61dfb76ca12670c@syzkaller.appspotmail.com
Signed-off-by: Arnav Kapoor <arnav@example.com>
---
fs/fserror.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/fs/fserror.c b/fs/fserror.c
index 0123456789ab..fedcba987654 100644
--- a/fs/fserror.c
+++ b/fs/fserror.c
@@ -159,16 +159,13 @@ void fserror_report(struct super_block *sb, struct
inode *inode,
event->len = len;
event->error = error;
/*
- * Can't iput from non-sleeping context, so grabbing another reference
- * to the inode must be the last thing before submitting the event.
+ * Can't iput from non-sleeping context, so grabbing another reference
+ * to the inode must be the last thing before submitting the event.
+ * The caller must hold a live reference if @inode is provided.
*/
if (inode) {
- event->inode = igrab(inode);
- if (!event->inode)
- goto lost_event;
+ ihold(inode);
+ event->inode = inode;
}
/*
@@ -184,9 +181,7 @@ void fserror_report(struct super_block *sb, struct
inode *inode,
schedule_work(&event->work);
return;
-lost_event:
- fserror_free_event(event);
lost:
if (inode)
pr_err_ratelimited("%s: lost file I/O error report for ino %lu
type %u pos 0x%llx len 0x%llx error %d",
--
2.43.0
On Saturday, 14 February 2026 at 17:32:10 UTC+5:30 syzbot wrote:
Hello,
syzbot tried to test the proposed patch but the build/boot failed:
failed to apply patch:
checking file fs/fserror.c
patch: **** unexpected end of file in patch
Tested on:
commit: 770aaedb Merge tag 'bootconfig-v7.0' of git://git.kern..
git tree: upstream
kernel config: https://syzkaller.appspot.com/x/.config?x=e600149b13c010eb
dashboard link: https://syzkaller.appspot.com/bug?extid=5eb0d61dfb76ca12670c
compiler:
patch: https://syzkaller.appspot.com/x/patch.diff?x=15adac02580000
^ permalink raw reply related [flat|nested] 8+ messages in thread* Forwarded: Re: [syzbot] [xfs?] inconsistent lock state in igrab
2026-02-14 4:57 [syzbot] [xfs?] inconsistent lock state in igrab syzbot
` (2 preceding siblings ...)
2026-02-14 12:05 ` syzbot
@ 2026-02-14 16:16 ` syzbot
3 siblings, 0 replies; 8+ messages in thread
From: syzbot @ 2026-02-14 16:16 UTC (permalink / raw)
To: linux-kernel, syzkaller-bugs
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.
***
Subject: Re: [syzbot] [xfs?] inconsistent lock state in igrab
Author: djwong@kernel.org
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git f90fa6ef5701f63c5ed29d93b6d58a2fde30836d
On Sat, Feb 14, 2026 at 12:18:36AM -0800, syzbot wrote:
> syzbot has found a reproducer for the following issue on:
>
> HEAD commit: cd7a5651db26 alpha: add missing address argument in call t..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=13b47e5a580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=e600149b13c010eb
> dashboard link: https://syzkaller.appspot.com/bug?extid=5eb0d61dfb76ca12670c
> compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=15df8722580000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17f362aa580000
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/ea46ed04f19d/disk-cd7a5651.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/ee7aa4ba7700/vmlinux-cd7a5651.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/70280d10edbe/bzImage-cd7a5651.xz
> mounted in repro: https://storage.googleapis.com/syzbot-assets/41cb64e4f612/mount_0.gz
> fsck result: failed (log: https://syzkaller.appspot.com/x/fsck.log?x=1105a6e6580000)
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+5eb0d61dfb76ca12670c@syzkaller.appspotmail.com
>
> I/O error, dev loop0, sector 512 op 0x0:(READ) flags 0x880700 phys_seg 1 prio class 2
> I/O error, dev loop0, sector 18692 op 0x0:(READ) flags 0x880700 phys_seg 1 prio class 2
> ================================
> WARNING: inconsistent lock state
> syzkaller #0 Not tainted
> --------------------------------
> inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
> ksoftirqd/0/15 [HC0[0]:SC1[1]:HE1:SE0] takes:
> ffff888059619180 (&sb->s_type->i_lock_key#36){+.?.}-{3:3}, at: spin_lock include/linux/spinlock.h:341 [inline]
> ffff888059619180 (&sb->s_type->i_lock_key#36){+.?.}-{3:3}, at: igrab+0x2a/0x230 fs/inode.c:1583
> {SOFTIRQ-ON-W} state was registered at:
> lock_acquire kernel/locking/lockdep.c:5868 [inline]
> lock_acquire+0x17c/0x330 kernel/locking/lockdep.c:5825
> __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
> _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154
> spin_lock include/linux/spinlock.h:341 [inline]
> unlock_new_inode+0x7a/0x330 fs/inode.c:1222
> xfs_finish_inode_setup fs/xfs/xfs_inode.h:630 [inline]
> xfs_setup_existing_inode fs/xfs/xfs_inode.h:637 [inline]
> xfs_iget+0x1196/0x30f0 fs/xfs/xfs_icache.c:814
> xfs_mountfs+0x108c/0x20b0 fs/xfs/xfs_mount.c:1072
> xfs_fs_fill_super+0x153f/0x1f20 fs/xfs/xfs_super.c:1938
> get_tree_bdev_flags+0x38c/0x620 fs/super.c:1694
> vfs_get_tree+0x92/0x320 fs/super.c:1754
> fc_mount fs/namespace.c:1193 [inline]
> do_new_mount_fc fs/namespace.c:3760 [inline]
> do_new_mount fs/namespace.c:3836 [inline]
> path_mount+0x7d0/0x23d0 fs/namespace.c:4146
> do_mount fs/namespace.c:4159 [inline]
> __do_sys_mount fs/namespace.c:4348 [inline]
> __se_sys_mount fs/namespace.c:4325 [inline]
> __x64_sys_mount+0x293/0x310 fs/namespace.c:4325
> do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> do_syscall_64+0x106/0xf80 arch/x86/entry/syscall_64.c:94
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
> irq event stamp: 972992
> hardirqs last enabled at (972992): [<ffffffff8b820072>] __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:178 [inline]
> hardirqs last enabled at (972992): [<ffffffff8b820072>] _raw_spin_unlock_irqrestore+0x52/0x80 kernel/locking/spinlock.c:194
> hardirqs last disabled at (972991): [<ffffffff8b81fd82>] __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:130 [inline]
> hardirqs last disabled at (972991): [<ffffffff8b81fd82>] _raw_spin_lock_irqsave+0x52/0x60 kernel/locking/spinlock.c:162
> softirqs last enabled at (972968): [<ffffffff81c7bb68>] run_ksoftirqd kernel/softirq.c:1063 [inline]
> softirqs last enabled at (972968): [<ffffffff81c7bb68>] run_ksoftirqd+0x38/0x60 kernel/softirq.c:1055
> softirqs last disabled at (972973): [<ffffffff81c7bb68>] run_ksoftirqd kernel/softirq.c:1063 [inline]
> softirqs last disabled at (972973): [<ffffffff81c7bb68>] run_ksoftirqd+0x38/0x60 kernel/softirq.c:1055
>
> other info that might help us debug this:
> Possible unsafe locking scenario:
>
> CPU0
> ----
> lock(&sb->s_type->i_lock_key#36);
> <Interrupt>
> lock(&sb->s_type->i_lock_key#36);
>
> *** DEADLOCK ***
>
> no locks held by ksoftirqd/0/15.
>
> stack backtrace:
> CPU: 0 UID: 0 PID: 15 Comm: ksoftirqd/0 Not tainted syzkaller #0 PREEMPT(full)
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2026
> Call Trace:
> <TASK>
> __dump_stack lib/dump_stack.c:94 [inline]
> dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
> print_usage_bug.part.0+0x257/0x340 kernel/locking/lockdep.c:4042
> print_usage_bug kernel/locking/lockdep.c:4010 [inline]
> valid_state kernel/locking/lockdep.c:4056 [inline]
> mark_lock_irq kernel/locking/lockdep.c:4267 [inline]
> mark_lock+0x74a/0xa20 kernel/locking/lockdep.c:4753
> mark_usage kernel/locking/lockdep.c:4642 [inline]
> __lock_acquire+0x103a/0x2630 kernel/locking/lockdep.c:5191
> lock_acquire kernel/locking/lockdep.c:5868 [inline]
> lock_acquire+0x17c/0x330 kernel/locking/lockdep.c:5825
> __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
> _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154
> spin_lock include/linux/spinlock.h:341 [inline]
> igrab+0x2a/0x230 fs/inode.c:1583
> fserror_report+0x3fd/0x750 fs/fserror.c:159
> fserror_report_io include/linux/fserror.h:48 [inline]
> iomap_finish_folio_read+0x168/0x2c0 fs/iomap/buffered-io.c:407
> iomap_read_end_io+0x11a/0x430 fs/iomap/bio.c:17
> bio_endio+0x755/0x8b0 block/bio.c:1790
> blk_update_request+0x741/0x1330 block/blk-mq.c:1016
> blk_mq_end_request+0x5b/0x420 block/blk-mq.c:1178
> lo_complete_rq+0x1d4/0x2a0 drivers/block/loop.c:314
> blk_complete_reqs+0xb1/0xf0 block/blk-mq.c:1253
> handle_softirqs+0x1ea/0x910 kernel/softirq.c:622
> run_ksoftirqd kernel/softirq.c:1063 [inline]
> run_ksoftirqd+0x38/0x60 kernel/softirq.c:1055
> smpboot_thread_fn+0x3d3/0xaa0 kernel/smpboot.c:160
> kthread+0x370/0x450 kernel/kthread.c:467
> ret_from_fork+0x754/0xd80 arch/x86/kernel/process.c:158
> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
> </TASK>
>
>
> ---
> If you want syzbot to run the reproducer, reply with:
> #syz test: git://repo/address.git branch-or-commit-hash
> If you attach or paste a git patch, syzbot will apply it before testing.
>
^ permalink raw reply [flat|nested] 8+ messages in thread