* [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
@ 2025-10-20 21:07 syzbot
2025-10-21 20:58 ` Forwarded: " syzbot
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: syzbot @ 2025-10-20 21:07 UTC (permalink / raw)
To: agruenba, gfs2, linux-kernel, syzkaller-bugs
Hello,
syzbot found the following issue on:
HEAD commit: 93f3bab4310d Add linux-next specific files for 20251017
git tree: linux-next
console output: https://syzkaller.appspot.com/x/log.txt?x=136b6492580000
kernel config: https://syzkaller.appspot.com/x/.config?x=408308c229eef498
dashboard link: https://syzkaller.appspot.com/bug?extid=19e0be39cc25dfcb0858
compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11963de2580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1784b52f980000
Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/c955a9337646/disk-93f3bab4.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/843962ea5283/vmlinux-93f3bab4.xz
kernel image: https://storage.googleapis.com/syzbot-assets/42360a7c5734/bzImage-93f3bab4.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/545c6975baec/mount_3.gz
fsck result: failed (log: https://syzkaller.appspot.com/x/fsck.log?x=1679f5e2580000)
The issue was bisected to:
commit 8fdd8a28fe5cd5045a43ac1093f2d07325fd9fcb
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date: Tue Aug 5 21:12:06 2025 +0000
gfs2: Asynchronous withdraw
bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=1752e492580000
final oops: https://syzkaller.appspot.com/x/report.txt?x=14d2e492580000
console output: https://syzkaller.appspot.com/x/log.txt?x=10d2e492580000
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+19e0be39cc25dfcb0858@syzkaller.appspotmail.com
Fixes: 8fdd8a28fe5c ("gfs2: Asynchronous withdraw")
R10: 0000000000200001 R11: 0000000000000246 R12: 0000200000012500
R13: 00007ffe544d9030 R14: 00000000000125bf R15: 0000200000000680
</TASK>
gfs2: fsid=syz:syz.0: about to withdraw this file system
gfs2: fsid=syz:syz.0: can't lookup journal index: 0
------------[ cut here ]------------
ODEBUG: free active (active state 0) object: ffff888026c285a0 object type: work_struct hint: gfs2_withdraw_func+0x0/0x430 fs/gfs2/util.c:-1
WARNING: lib/debugobjects.c:615 at debug_print_object+0x16b/0x1e0 lib/debugobjects.c:612, CPU#1: syz.0.17/6010
Modules linked in:
CPU: 1 UID: 0 PID: 6010 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025
RIP: 0010:debug_print_object+0x16b/0x1e0 lib/debugobjects.c:612
Code: 4c 89 ff e8 47 99 8a fd 4d 8b 0f 48 c7 c7 80 86 c0 8b 48 8b 34 24 4c 89 ea 89 e9 4d 89 f0 41 54 e8 8a f5 e7 fc 48 83 c4 08 90 <0f> 0b 90 90 ff 05 c7 d0 02 0b 48 83 c4 08 5b 41 5c 41 5d 41 5e 41
RSP: 0018:ffffc90003bdf8a0 EFLAGS: 00010296
RAX: ef320fd336e0b300 RBX: dffffc0000000000 RCX: ffff88807b605ac0
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000002
RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffffbfff1bfa6c0 R12: ffffffff8404d890
R13: ffffffff8bc08800 R14: ffff888026c285a0 R15: ffffffff8b69e000
FS: 000055557497a500(0000) GS:ffff888125dfd000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffe544da000 CR3: 000000002e3c8000 CR4: 00000000003526f0
Call Trace:
<TASK>
__debug_check_no_obj_freed lib/debugobjects.c:1099 [inline]
debug_check_no_obj_freed+0x3a2/0x470 lib/debugobjects.c:1129
slab_free_hook mm/slub.c:2461 [inline]
slab_free mm/slub.c:6619 [inline]
kfree+0x115/0x6d0 mm/slub.c:6826
free_sbd fs/gfs2/ops_fstype.c:72 [inline]
gfs2_fill_super+0x1552/0x2230 fs/gfs2/ops_fstype.c:1317
get_tree_bdev_flags+0x40e/0x4d0 fs/super.c:1691
gfs2_get_tree+0x51/0x1e0 fs/gfs2/ops_fstype.c:1333
vfs_get_tree+0x92/0x2b0 fs/super.c:1751
fc_mount fs/namespace.c:1208 [inline]
do_new_mount_fc fs/namespace.c:3651 [inline]
do_new_mount+0x302/0xa10 fs/namespace.c:3727
do_mount fs/namespace.c:4050 [inline]
__do_sys_mount fs/namespace.c:4238 [inline]
__se_sys_mount+0x313/0x410 fs/namespace.c:4215
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fbee1f9076a
Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb a6 e8 de 1a 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffe544d8fe8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 00007ffe544d9070 RCX: 00007fbee1f9076a
RDX: 0000200000000000 RSI: 0000200000012500 RDI: 00007ffe544d9030
RBP: 0000200000000000 R08: 00007ffe544d9070 R09: 0000000000200001
R10: 0000000000200001 R11: 0000000000000246 R12: 0000200000012500
R13: 00007ffe544d9030 R14: 00000000000125bf R15: 0000200000000680
</TASK>
---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.
syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
For information about bisection process see: https://goo.gl/tpsmEJ#bisection
If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title
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.
If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)
If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report
If you want to undo deduplication, reply with:
#syz undup
^ permalink raw reply [flat|nested] 10+ messages in thread
* Forwarded: Re: [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
2025-10-20 21:07 [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
@ 2025-10-21 20:58 ` syzbot
2025-10-22 22:33 ` syzbot
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: syzbot @ 2025-10-21 20:58 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] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
Author: nirbhay.lkd@gmail.com
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
master
^ permalink raw reply [flat|nested] 10+ messages in thread
* Forwarded: Re: [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
2025-10-20 21:07 [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
2025-10-21 20:58 ` Forwarded: " syzbot
@ 2025-10-22 22:33 ` syzbot
2025-10-23 12:10 ` syzbot
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: syzbot @ 2025-10-22 22:33 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] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
Author: agruenba@redhat.com
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git
for-next
^ permalink raw reply [flat|nested] 10+ messages in thread
* Forwarded: Re: [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
2025-10-20 21:07 [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
2025-10-21 20:58 ` Forwarded: " syzbot
2025-10-22 22:33 ` syzbot
@ 2025-10-23 12:10 ` syzbot
2025-10-23 17:32 ` syzbot
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: syzbot @ 2025-10-23 12:10 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] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
Author: nirbhay.lkd@gmail.com
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
master
^ permalink raw reply [flat|nested] 10+ messages in thread
* Forwarded: Re: [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
2025-10-20 21:07 [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
` (2 preceding siblings ...)
2025-10-23 12:10 ` syzbot
@ 2025-10-23 17:32 ` syzbot
2025-10-24 14:43 ` [PATCH] gfs2: flush withdraw work before freeing gfs2_sbd Nirbhay Sharma
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: syzbot @ 2025-10-23 17:32 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] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
Author: nirbhay.lkd@gmail.com
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
aaa9c355
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] gfs2: flush withdraw work before freeing gfs2_sbd
2025-10-20 21:07 [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
` (3 preceding siblings ...)
2025-10-23 17:32 ` syzbot
@ 2025-10-24 14:43 ` Nirbhay Sharma
[not found] ` <8f270474-7ced-4668-97da-f3d7709a82e7@gmail.com>
2025-11-16 16:50 ` Forwarded: Re: [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
2025-11-16 19:58 ` syzbot
6 siblings, 1 reply; 10+ messages in thread
From: Nirbhay Sharma @ 2025-10-24 14:43 UTC (permalink / raw)
To: Andreas Gruenbacher
Cc: gfs2, linux-kernel, syzbot+19e0be39cc25dfcb0858, skhan,
david.hunter.linux, linux-kernel-mentees, Nirbhay Sharma
Syzbot reported an ODEBUG warning where free_sbd() was freeing memory
containing an active work_struct (sd_withdraw_work):
ODEBUG: free active (active state 0) object: ffff888026c285a0
object type: work_struct hint: gfs2_withdraw_func+0x0/0x430
WARNING: CPU: 0 PID: 6010 at lib/debugobjects.c:545
Call Trace:
free_sbd+0x1e4/0x270 fs/gfs2/ops_fstype.c:1308
The issue occurs when gfs2_fill_super() fails after initializing
sd_withdraw_work at line 1218. Some error paths (fail_lm, fail_debug,
etc.) skip the existing flush_work() at the fail_inodes label and jump
directly to fail_free, which calls free_sbd() without flushing the
potentially pending work.
free_sbd() is also called from init_sbd()'s error path before
sd_withdraw_work is initialized. Since the structure is allocated with
kzalloc(), work.func is NULL in this case.
Fix by adding a guarded flush_work() to free_sbd(). Check work.func
before flushing to handle both cases: when called after INIT_WORK()
(work must be flushed), and when called before INIT_WORK() (work.func
is NULL, skip flushing). This avoids the WARN_ON(!work->func) in
__flush_work().
Note: gfs2_put_super() already calls flush_work() before free_sbd()
(line 606), so the flush in free_sbd() will be redundant but harmless
for the normal unmount path.
Reported-by: syzbot+19e0be39cc25dfcb0858@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=19e0be39cc25dfcb0858
Fixes: 8fdd8a28fe5c ("gfs2: Asynchronous withdraw")
Signed-off-by: Nirbhay Sharma <nirbhay.lkd@gmail.com>
---
Testing performed:
- Reproduced original bug with syzbot C reproducer
- Verified fix prevents ODEBUG warnings in all error paths
- Tested early mount failures (unformatted devices)
- Tested all gfs2_fill_super error paths (4 scenarios)
- Parallel mount stress test (3 concurrent operations)
- Memory leak test (50 mount/unmount cycles, <4MB variance)
- Race condition testing passed
- Validated with syzbot on linux-next (Oct 22)
- All tests completed with zero ODEBUG warnings
fs/gfs2/ops_fstype.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 08502d967e71..6cea03410e57 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -67,6 +67,14 @@ void free_sbd(struct gfs2_sbd *sdp)
{
struct super_block *sb = sdp->sd_vfs;
+ /*
+ * Only flush withdraw work if initialized. Work is initialized in
+ * gfs2_fill_super() at line 1218, after init_sbd() succeeds.
+ * Checking func avoids WARN_ON in __flush_work() for early failures.
+ */
+ if (sdp->sd_withdraw_work.func)
+ flush_work(&sdp->sd_withdraw_work);
+
free_percpu(sdp->sd_lkstats);
sb->s_fs_info = NULL;
kfree(sdp);
--
2.48.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] gfs2: flush withdraw work before freeing gfs2_sbd
[not found] ` <8f270474-7ced-4668-97da-f3d7709a82e7@gmail.com>
@ 2025-11-15 16:12 ` David Hunter
2025-11-16 20:12 ` Andreas Gruenbacher
1 sibling, 0 replies; 10+ messages in thread
From: David Hunter @ 2025-11-15 16:12 UTC (permalink / raw)
To: Nirbhay Sharma, Andreas Gruenbacher
Cc: gfs2, linux-kernel, syzbot+19e0be39cc25dfcb0858, skhan,
linux-kernel-mentees
On 11/13/25 15:24, Nirbhay Sharma wrote:
> Hi Andreas,
>
> I hope this email finds you well.
>
> I'm writing to follow up on the GFS2 patch I submitted regarding the
> ODEBUG warning in free_sbd(). The patch addressed the syzbot report
> where sd_withdraw_work was being freed while still active.
>
> I wanted to check if you've had a chance to review the patch, or if
> there's any feedback or additional information I can provide to help
> with the review process.
>
> I understand maintainers are busy, and I'm happy to make any necessary
> revisions or provide further clarification on the testing that was
> performed.
>
> Best regards,
> Nirbhay Sharma
>
>
Hey Nirbay,
The reply that you write should be below the message you are talking
about. If you put it above, it is called "top-posting", and the kernel
community does not like top-posting.
For long email chains, it becomes difficult to keep track of the
conversations.
What I am doing now is called in-line posting. I am responding below
your message, but there are still other messages below mine.
> On 10/24/25 8:13 PM, Nirbhay Sharma wrote:
>> Syzbot reported an ODEBUG warning where free_sbd() was freeing memory
>> containing an active work_struct (sd_withdraw_work):
>>
>> ODEBUG: free active (active state 0) object: ffff888026c285a0
>> object type: work_struct hint: gfs2_withdraw_func+0x0/0x430
>> WARNING: CPU: 0 PID: 6010 at lib/debugobjects.c:545
>> Call Trace:
>> free_sbd+0x1e4/0x270 fs/gfs2/ops_fstype.c:1308
>>
>> The issue occurs when gfs2_fill_super() fails after initializing
>> sd_withdraw_work at line 1218. Some error paths (fail_lm, fail_debug,
>> etc.) skip the existing flush_work() at the fail_inodes label and jump
>> directly to fail_free, which calls free_sbd() without flushing the
>> potentially pending work.
>>
>> free_sbd() is also called from init_sbd()'s error path before
>> sd_withdraw_work is initialized. Since the structure is allocated with
>> kzalloc(), work.func is NULL in this case.
>>
>> Fix by adding a guarded flush_work() to free_sbd(). Check work.func
>> before flushing to handle both cases: when called after INIT_WORK()
>> (work must be flushed), and when called before INIT_WORK() (work.func
>> is NULL, skip flushing). This avoids the WARN_ON(!work->func) in
>> __flush_work().
>>
>> Note: gfs2_put_super() already calls flush_work() before free_sbd()
>> (line 606), so the flush in free_sbd() will be redundant but harmless
>> for the normal unmount path.
>>
>> Reported-by: syzbot+19e0be39cc25dfcb0858@syzkaller.appspotmail.com
>> Closes: https://syzkaller.appspot.com/bug?extid=19e0be39cc25dfcb0858
>> Fixes: 8fdd8a28fe5c ("gfs2: Asynchronous withdraw")
>> Signed-off-by: Nirbhay Sharma <nirbhay.lkd@gmail.com>
>> ---
>> Testing performed:
>> - Reproduced original bug with syzbot C reproducer
>> - Verified fix prevents ODEBUG warnings in all error paths
>> - Tested early mount failures (unformatted devices)
>> - Tested all gfs2_fill_super error paths (4 scenarios)
>> - Parallel mount stress test (3 concurrent operations)
>> - Memory leak test (50 mount/unmount cycles, <4MB variance)
>> - Race condition testing passed
>> - Validated with syzbot on linux-next (Oct 22)
>> - All tests completed with zero ODEBUG warnings
>>
>> fs/gfs2/ops_fstype.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
>> index 08502d967e71..6cea03410e57 100644
>> --- a/fs/gfs2/ops_fstype.c
>> +++ b/fs/gfs2/ops_fstype.c
>> @@ -67,6 +67,14 @@ void free_sbd(struct gfs2_sbd *sdp)
>> {
>> struct super_block *sb = sdp->sd_vfs;
>>
>> + /*
>> + * Only flush withdraw work if initialized. Work is initialized in
>> + * gfs2_fill_super() at line 1218, after init_sbd() succeeds.
>> + * Checking func avoids WARN_ON in __flush_work() for early failures.
>> + */
>> + if (sdp->sd_withdraw_work.func)
>> + flush_work(&sdp->sd_withdraw_work);
>> +
>> free_percpu(sdp->sd_lkstats);
>> sb->s_fs_info = NULL;
>> kfree(sdp);
If I respond down here, it is bottom-posting. Both inline and bottom
posting are encouraged. Top posting is to be avoided.
Thanks,
David Hunter
^ permalink raw reply [flat|nested] 10+ messages in thread
* Forwarded: Re: [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
2025-10-20 21:07 [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
` (4 preceding siblings ...)
2025-10-24 14:43 ` [PATCH] gfs2: flush withdraw work before freeing gfs2_sbd Nirbhay Sharma
@ 2025-11-16 16:50 ` syzbot
2025-11-16 19:58 ` syzbot
6 siblings, 0 replies; 10+ messages in thread
From: syzbot @ 2025-11-16 16:50 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] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
Author: agruenba@redhat.com
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git
2c5c2dc354a45fc8e5c12dd0a7e3b80bac6e5fb3
^ permalink raw reply [flat|nested] 10+ messages in thread
* Forwarded: Re: [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
2025-10-20 21:07 [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
` (5 preceding siblings ...)
2025-11-16 16:50 ` Forwarded: Re: [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
@ 2025-11-16 19:58 ` syzbot
6 siblings, 0 replies; 10+ messages in thread
From: syzbot @ 2025-11-16 19:58 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] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super
Author: agruenba@redhat.com
#syz fix: gfs2: Asynchronous withdraw
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] gfs2: flush withdraw work before freeing gfs2_sbd
[not found] ` <8f270474-7ced-4668-97da-f3d7709a82e7@gmail.com>
2025-11-15 16:12 ` David Hunter
@ 2025-11-16 20:12 ` Andreas Gruenbacher
1 sibling, 0 replies; 10+ messages in thread
From: Andreas Gruenbacher @ 2025-11-16 20:12 UTC (permalink / raw)
To: Nirbhay Sharma
Cc: Andreas Gruenbacher, gfs2, linux-kernel,
syzbot+19e0be39cc25dfcb0858, skhan, david.hunter.linux,
linux-kernel-mentees
Hi Nirbhay,
On Thu, Nov 13, 2025 at 9:24 PM Nirbhay Sharma <nirbhay.lkd@gmail.com> wrote:
> Hi Andreas,
>
> I hope this email finds you well.
>
> I'm writing to follow up on the GFS2 patch I submitted regarding the ODEBUG warning in free_sbd(). The patch addressed the syzbot report where sd_withdraw_work was being freed while still active.
>
> I wanted to check if you've had a chance to review the patch, or if there's any feedback or additional information I can provide to help with the review process.
>
> I understand maintainers are busy, and I'm happy to make any necessary revisions or provide further clarification on the testing that was performed.
thanks for looking into this issue, but this is already fixed in the
updated version of patch "gfs2: Asynchronous withdraw" which has been on
gfs2 for-next since at least October 23. Below is my isolated fix.
Thanks,
Andreas
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 2d177aa21ffd..c42982bdd4b2 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -1294,7 +1294,6 @@ static int gfs2_fill_super(struct super_block *sb, struct fs_context *fc)
fail_per_node:
init_per_node(sdp, UNDO);
fail_inodes:
- flush_work(&sdp->sd_withdraw_work);
init_inodes(sdp, UNDO);
fail_sb:
if (sdp->sd_root_dir)
diff --git a/fs/gfs2/util.c b/fs/gfs2/util.c
index fff0b0e2e27c..c454bea101de 100644
--- a/fs/gfs2/util.c
+++ b/fs/gfs2/util.c
@@ -345,6 +345,12 @@ void gfs2_withdraw(struct gfs2_sbd *sdp)
} while (unlikely(!try_cmpxchg(&sdp->sd_flags, &old, new)));
dump_stack();
+ /*
+ * There is no need to withdraw when the superblock hasn't been
+ * fully initialized, yet.
+ */
+ if (!(sdp->sd_vfs->s_flags & SB_BORN))
+ return;
fs_err(sdp, "about to withdraw this file system\n");
schedule_work(&sdp->sd_withdraw_work);
}
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-11-16 20:12 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-20 21:07 [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
2025-10-21 20:58 ` Forwarded: " syzbot
2025-10-22 22:33 ` syzbot
2025-10-23 12:10 ` syzbot
2025-10-23 17:32 ` syzbot
2025-10-24 14:43 ` [PATCH] gfs2: flush withdraw work before freeing gfs2_sbd Nirbhay Sharma
[not found] ` <8f270474-7ced-4668-97da-f3d7709a82e7@gmail.com>
2025-11-15 16:12 ` David Hunter
2025-11-16 20:12 ` Andreas Gruenbacher
2025-11-16 16:50 ` Forwarded: Re: [syzbot] [gfs2?] WARNING: ODEBUG bug in gfs2_fill_super syzbot
2025-11-16 19:58 ` syzbot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox