* Re: Syzbot test for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2024-08-22 8:11 [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
@ 2025-11-29 19:05 ` Prithvi Tambewagh
2025-11-29 19:05 ` syzbot
2025-11-29 19:13 ` Prithvi Tambewagh
` (5 subsequent siblings)
6 siblings, 1 reply; 16+ messages in thread
From: Prithvi Tambewagh @ 2025-11-29 19:05 UTC (permalink / raw)
To: jlbec, joseph.qi, mark
Cc: linux-kernel, ocfs2-devel, syzkaller-bugs, Prithvi Tambewagh
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
---
fs/ocfs2/suballoc.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index 6ac4dcd54588..c7eb6efc00b4 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1993,6 +1993,13 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
+ if( le16_to_cpu(cl->cl_next_free_rec) == 0) {
+ status = ocfs2_error(ac->ac_inode->i_sb,
+ "Chain allocator dinode %llu has 0 chains\n",
+ (unsigned long long)le64_to_cpu(fe->i_blkno));
+ goto bail;
+ }
+
victim = ocfs2_find_victim_chain(cl);
ac->ac_chain = victim;
base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: Syzbot test for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2025-11-29 19:05 ` Syzbot test for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
@ 2025-11-29 19:05 ` syzbot
0 siblings, 0 replies; 16+ messages in thread
From: syzbot @ 2025-11-29 19:05 UTC (permalink / raw)
To: activprithvi
Cc: activprithvi, jlbec, joseph.qi, linux-kernel, mark, ocfs2-devel,
syzkaller-bugs
> #syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
I see the command but can't find the corresponding bug.
Please resend the email to syzbot+HASH@syzkaller.appspotmail.com address
that is the sender of the bug report (also present in the Reported-by tag).
>
> Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
> ---
> fs/ocfs2/suballoc.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
> index 6ac4dcd54588..c7eb6efc00b4 100644
> --- a/fs/ocfs2/suballoc.c
> +++ b/fs/ocfs2/suballoc.c
> @@ -1993,6 +1993,13 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
>
> cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
>
> + if( le16_to_cpu(cl->cl_next_free_rec) == 0) {
> + status = ocfs2_error(ac->ac_inode->i_sb,
> + "Chain allocator dinode %llu has 0 chains\n",
> + (unsigned long long)le64_to_cpu(fe->i_blkno));
> + goto bail;
> + }
> +
> victim = ocfs2_find_victim_chain(cl);
> ac->ac_chain = victim;
>
>
> base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
> --
> 2.34.1
>
> --
> You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/syzkaller-bugs/20251129190507.543570-1-activprithvi%40gmail.com.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Syzbot test for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2024-08-22 8:11 [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
2025-11-29 19:05 ` Syzbot test for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
@ 2025-11-29 19:13 ` Prithvi Tambewagh
2025-11-29 19:38 ` [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
2025-12-01 7:35 ` Syzbot test for v2 for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
` (4 subsequent siblings)
6 siblings, 1 reply; 16+ messages in thread
From: Prithvi Tambewagh @ 2025-11-29 19:13 UTC (permalink / raw)
To: syzbot+96d38c6e1655c1420a72, jlbec, joseph.qi, mark
Cc: linux-kernel, ocfs2-devel, syzkaller-bugs, Prithvi Tambewagh
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
---
fs/ocfs2/suballoc.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index 6ac4dcd54588..c7eb6efc00b4 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1993,6 +1993,13 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
+ if( le16_to_cpu(cl->cl_next_free_rec) == 0) {
+ status = ocfs2_error(ac->ac_inode->i_sb,
+ "Chain allocator dinode %llu has 0 chains\n",
+ (unsigned long long)le64_to_cpu(fe->i_blkno));
+ goto bail;
+ }
+
victim = ocfs2_find_victim_chain(cl);
ac->ac_chain = victim;
base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* Syzbot test for v2 for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2024-08-22 8:11 [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
2025-11-29 19:05 ` Syzbot test for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
2025-11-29 19:13 ` Prithvi Tambewagh
@ 2025-12-01 7:35 ` Prithvi Tambewagh
2025-12-01 7:36 ` syzbot
2025-12-01 7:40 ` Joseph Qi
2025-12-01 7:37 ` Prithvi Tambewagh
` (3 subsequent siblings)
6 siblings, 2 replies; 16+ messages in thread
From: Prithvi Tambewagh @ 2025-12-01 7:35 UTC (permalink / raw)
To: joseph.qi, jlbec, mark
Cc: linux-kernel, ocfs2-devel, syzkaller-bugs, Prithvi Tambewagh
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
---
fs/ocfs2/suballoc.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index 6ac4dcd54588..f4e4ef08e0f9 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1992,6 +1992,13 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
}
cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
+ if (!le16_to_cpu(cl->cl_next_free_rec) ||
+ le16_to_cpu(cl->cl_next_free_rec) > le16_to_cpu(cl->cl_count)) {
+ status = ocfs2_error(ac->ac_inode->i_sb,
+ "Chain allocator dinode %llu has 0 chains\n",
+ (unsigned long long)le64_to_cpu(fe->i_blkno));
+ goto bail;
+ }
victim = ocfs2_find_victim_chain(cl);
ac->ac_chain = victim;
base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: Syzbot test for v2 for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2025-12-01 7:35 ` Syzbot test for v2 for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
@ 2025-12-01 7:36 ` syzbot
2025-12-01 7:40 ` Joseph Qi
1 sibling, 0 replies; 16+ messages in thread
From: syzbot @ 2025-12-01 7:36 UTC (permalink / raw)
To: activprithvi
Cc: activprithvi, jlbec, joseph.qi, linux-kernel, mark, ocfs2-devel,
syzkaller-bugs
> #syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
I see the command but can't find the corresponding bug.
Please resend the email to syzbot+HASH@syzkaller.appspotmail.com address
that is the sender of the bug report (also present in the Reported-by tag).
>
> Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
> ---
> fs/ocfs2/suballoc.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
> index 6ac4dcd54588..f4e4ef08e0f9 100644
> --- a/fs/ocfs2/suballoc.c
> +++ b/fs/ocfs2/suballoc.c
> @@ -1992,6 +1992,13 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
> }
>
> cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
> + if (!le16_to_cpu(cl->cl_next_free_rec) ||
> + le16_to_cpu(cl->cl_next_free_rec) > le16_to_cpu(cl->cl_count)) {
> + status = ocfs2_error(ac->ac_inode->i_sb,
> + "Chain allocator dinode %llu has 0 chains\n",
> + (unsigned long long)le64_to_cpu(fe->i_blkno));
> + goto bail;
> + }
>
> victim = ocfs2_find_victim_chain(cl);
> ac->ac_chain = victim;
>
> base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
> --
> 2.34.1
>
> --
> You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/syzkaller-bugs/20251201073538.47128-1-activprithvi%40gmail.com.
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: Syzbot test for v2 for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2025-12-01 7:35 ` Syzbot test for v2 for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
2025-12-01 7:36 ` syzbot
@ 2025-12-01 7:40 ` Joseph Qi
1 sibling, 0 replies; 16+ messages in thread
From: Joseph Qi @ 2025-12-01 7:40 UTC (permalink / raw)
To: Prithvi Tambewagh, jlbec, mark; +Cc: linux-kernel, ocfs2-devel, syzkaller-bugs
On 2025/12/1 15:35, Prithvi Tambewagh wrote:
> #syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
>
> Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
> ---
> fs/ocfs2/suballoc.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
> index 6ac4dcd54588..f4e4ef08e0f9 100644
> --- a/fs/ocfs2/suballoc.c
> +++ b/fs/ocfs2/suballoc.c
> @@ -1992,6 +1992,13 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
> }
>
> cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
> + if (!le16_to_cpu(cl->cl_next_free_rec) ||
> + le16_to_cpu(cl->cl_next_free_rec) > le16_to_cpu(cl->cl_count)) {
^
Prefer to align here.
BTW, the prefix for patch title can be "ocfs2: " only.
Joseph
> + status = ocfs2_error(ac->ac_inode->i_sb,
> + "Chain allocator dinode %llu has 0 chains\n",
> + (unsigned long long)le64_to_cpu(fe->i_blkno));
> + goto bail;
> + }
>
> victim = ocfs2_find_victim_chain(cl);
> ac->ac_chain = victim;
>
> base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
^ permalink raw reply [flat|nested] 16+ messages in thread
* Syzbot test for v2 for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2024-08-22 8:11 [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
` (2 preceding siblings ...)
2025-12-01 7:35 ` Syzbot test for v2 for fs: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
@ 2025-12-01 7:37 ` Prithvi Tambewagh
2025-12-01 8:48 ` [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
2025-12-01 10:19 ` Syzbot test for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
` (2 subsequent siblings)
6 siblings, 1 reply; 16+ messages in thread
From: Prithvi Tambewagh @ 2025-12-01 7:37 UTC (permalink / raw)
To: syzbot+96d38c6e1655c1420a72, joseph.qi, jlbec, mark
Cc: linux-kernel, ocfs2-devel, syzkaller-bugs, Prithvi Tambewagh
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
---
fs/ocfs2/suballoc.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index 6ac4dcd54588..f4e4ef08e0f9 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1992,6 +1992,13 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
}
cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
+ if (!le16_to_cpu(cl->cl_next_free_rec) ||
+ le16_to_cpu(cl->cl_next_free_rec) > le16_to_cpu(cl->cl_count)) {
+ status = ocfs2_error(ac->ac_inode->i_sb,
+ "Chain allocator dinode %llu has 0 chains\n",
+ (unsigned long long)le64_to_cpu(fe->i_blkno));
+ goto bail;
+ }
victim = ocfs2_find_victim_chain(cl);
ac->ac_chain = victim;
base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* Syzbot test for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2024-08-22 8:11 [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
` (3 preceding siblings ...)
2025-12-01 7:37 ` Prithvi Tambewagh
@ 2025-12-01 10:19 ` Prithvi Tambewagh
2025-12-01 11:31 ` [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
2025-12-01 11:43 ` Syzbot test for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
2025-12-01 12:17 ` Syzbot testing for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
6 siblings, 1 reply; 16+ messages in thread
From: Prithvi Tambewagh @ 2025-12-01 10:19 UTC (permalink / raw)
To: syzbot+96d38c6e1655c1420a72, jlbec, joseph.qi, mark
Cc: linux-kernel, ocfs2-devel, syzkaller-bugs, Prithvi Tambewagh
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
---
fs/ocfs2/suballoc.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index 6ac4dcd54588..c310345b7135 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1992,6 +1992,14 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
}
cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
+ if (!le16_to_cpu(cl->cl_next_free_rec) ||
+ le16_to_cpu(cl->cl_next_free_rec) > le16_to_cpu(cl->cl_count)) {
+ status = ocfs2_error(ac->ac_inode->i_sb,
+ "Chain allocator dinode %llu has invalid next "
+ "free chain record %u, but only %u total\n",
+ (unsigned long long)le64_to_cpu(fe->i_blkno),
+ le16_to_cpu(cl->cl_next_free_rec),
+ le16_to_cpu(cl->cl_count));
victim = ocfs2_find_victim_chain(cl);
ac->ac_chain = victim;
base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits
2025-12-01 10:19 ` Syzbot test for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
@ 2025-12-01 11:31 ` syzbot
0 siblings, 0 replies; 16+ messages in thread
From: syzbot @ 2025-12-01 11:31 UTC (permalink / raw)
To: activprithvi, jlbec, joseph.qi, linux-kernel, mark, ocfs2-devel,
syzkaller-bugs
Hello,
syzbot tried to test the proposed patch but the build/boot failed:
fs/ocfs2/suballoc.c:2082:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2116:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2143:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2152:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2215:1: error: function definition is not allowed here
:2289:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2330:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2345:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2364:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2392:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2463:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2479:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2562:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2631:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2640:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2658:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2700:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2715:1: error: function definition is not allowed here
fs/ocfs2/suballoc.c:2736:1: error: function definition is not allowed here
Tested on:
commit: 939f15e6 Merge tag 'turbostat-2025.06.08' of git://git..
git tree: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel config: https://syzkaller.appspot.com/x/.config?x=d9ebb51ccc2ec42f
dashboard link: https://syzkaller.appspot.com/bug?extid=96d38c6e1655c1420a72
compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
patch: https://syzkaller.appspot.com/x/patch.diff?x=12782512580000
^ permalink raw reply [flat|nested] 16+ messages in thread
* Syzbot test for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2024-08-22 8:11 [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
` (4 preceding siblings ...)
2025-12-01 10:19 ` Syzbot test for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
@ 2025-12-01 11:43 ` Prithvi Tambewagh
2025-12-01 12:05 ` [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
2025-12-01 12:17 ` Syzbot testing for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
6 siblings, 1 reply; 16+ messages in thread
From: Prithvi Tambewagh @ 2025-12-01 11:43 UTC (permalink / raw)
To: syzbot+96d38c6e1655c1420a72, jlbec, joseph.qi, mark
Cc: linux-kernel, ocfs2-devel, syzkaller-bugs, Prithvi Tambewagh
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
---
fs/ocfs2/suballoc.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index 6ac4dcd54588..6c2c33a26056 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1992,6 +1992,15 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
}
cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
+ if (!le16_to_cpu(cl->cl_next_free_rec) ||
+ le16_to_cpu(cl->cl_next_free_rec) > le16_to_cpu(cl->cl_count)) {
+ status = ocfs2_error(ac->ac_inode->i_sb,
+ "Chain allocator dinode %llu has invalid next "
+ "free chain record %u, but only %u total\n",
+ (unsigned long long)le64_to_cpu(fe->i_blkno),
+ le16_to_cpu(cl->cl_next_free_rec),
+ le16_to_cpu(cl->cl_count));
+ }
victim = ocfs2_find_victim_chain(cl);
ac->ac_chain = victim;
base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits
2025-12-01 11:43 ` Syzbot test for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
@ 2025-12-01 12:05 ` syzbot
0 siblings, 0 replies; 16+ messages in thread
From: syzbot @ 2025-12-01 12:05 UTC (permalink / raw)
To: activprithvi, jlbec, joseph.qi, linux-kernel, mark, ocfs2-devel,
syzkaller-bugs
Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an issue:
kernel BUG in ocfs2_claim_suballoc_bits
ocfs2: Mounting device (7,0) on (node local, slot 0) with ordered data mode.
OCFS2: ERROR (device loop0): int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *, handle_t *, u32, u32, struct ocfs2_suballoc_result *): Chain allocator dinode 71 has invalid next free chain record 0, but only 0 total
On-disk corruption discovered. Please run fsck.ocfs2 once the filesystem is unmounted.
OCFS2: File system is now read-only.
------------[ cut here ]------------
kernel BUG at fs/ocfs2/suballoc.c:1443!
Oops: invalid opcode: 0000 [#1] SMP KASAN PTI
CPU: 0 UID: 0 PID: 6562 Comm: syz.0.16 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
RIP: 0010:ocfs2_find_victim_chain fs/ocfs2/suballoc.c:1443 [inline]
RIP: 0010:ocfs2_claim_suballoc_bits+0x25b9/0x25d0 fs/ocfs2/suballoc.c:2005
Code: 5f fb ff ff e8 08 41 1c fe 90 0f 0b e8 00 41 1c fe 90 0f 0b e8 f8 40 1c fe 90 0f 0b e8 f0 40 1c fe 90 0f 0b e8 e8 40 1c fe 90 <0f> 0b e8 e0 40 1c fe 90 0f 0b 66 66 66 66 2e 0f 1f 84 00 00 00 00
RSP: 0018:ffffc90003496e80 EFLAGS: 00010293
RAX: ffffffff83a40da8 RBX: 0000000000000000 RCX: ffff888025d78000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc90003497110 R08: ffff888072d4c103 R09: 1ffff1100e5a9820
R10: dffffc0000000000 R11: ffffed100e5a9821 R12: ffff88806f212ec4
R13: dffffc0000000000 R14: 0000000000000000 R15: ffff888072a78000
FS: 00007f6946c846c0(0000) GS:ffff888125c86000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000001b2dd5ffff CR3: 0000000027c28000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
__ocfs2_claim_clusters+0x303/0x8f0 fs/ocfs2/suballoc.c:2430
ocfs2_local_alloc_new_window fs/ocfs2/localalloc.c:1166 [inline]
ocfs2_local_alloc_slide_window fs/ocfs2/localalloc.c:1295 [inline]
ocfs2_reserve_local_alloc_bits+0x12be/0x24e0 fs/ocfs2/localalloc.c:669
ocfs2_reserve_clusters_with_limit+0x1be/0xba0 fs/ocfs2/suballoc.c:1168
ocfs2_mknod+0xe32/0x2050 fs/ocfs2/namei.c:354
ocfs2_mkdir+0x191/0x440 fs/ocfs2/namei.c:656
vfs_mkdir+0x303/0x510 fs/namei.c:4366
do_mkdirat+0x247/0x590 fs/namei.c:4399
__do_sys_mkdirat fs/namei.c:4416 [inline]
__se_sys_mkdirat fs/namei.c:4414 [inline]
__x64_sys_mkdirat+0x87/0xa0 fs/namei.c:4414
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f6945d8e929
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 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:00007f6946c84038 EFLAGS: 00000246 ORIG_RAX: 0000000000000102
RAX: ffffffffffffffda RBX: 00007f6945fb5fa0 RCX: 00007f6945d8e929
RDX: 0000000000000081 RSI: 0000200000000000 RDI: ffffffffffffff9c
RBP: 00007f6945e10b39 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007f6945fb5fa0 R15: 00007ffc37f061f8
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:ocfs2_find_victim_chain fs/ocfs2/suballoc.c:1443 [inline]
RIP: 0010:ocfs2_claim_suballoc_bits+0x25b9/0x25d0 fs/ocfs2/suballoc.c:2005
Code: 5f fb ff ff e8 08 41 1c fe 90 0f 0b e8 00 41 1c fe 90 0f 0b e8 f8 40 1c fe 90 0f 0b e8 f0 40 1c fe 90 0f 0b e8 e8 40 1c fe 90 <0f> 0b e8 e0 40 1c fe 90 0f 0b 66 66 66 66 2e 0f 1f 84 00 00 00 00
RSP: 0018:ffffc90003496e80 EFLAGS: 00010293
RAX: ffffffff83a40da8 RBX: 0000000000000000 RCX: ffff888025d78000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc90003497110 R08: ffff888072d4c103 R09: 1ffff1100e5a9820
R10: dffffc0000000000 R11: ffffed100e5a9821 R12: ffff88806f212ec4
R13: dffffc0000000000 R14: 0000000000000000 R15: ffff888072a78000
FS: 00007f6946c846c0(0000) GS:ffff888125d86000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055e32d8b1950 CR3: 0000000027c28000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Tested on:
commit: 939f15e6 Merge tag 'turbostat-2025.06.08' of git://git..
git tree: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
console output: https://syzkaller.appspot.com/x/log.txt?x=12f502b4580000
kernel config: https://syzkaller.appspot.com/x/.config?x=dcc9fa9d12bdc372
dashboard link: https://syzkaller.appspot.com/bug?extid=96d38c6e1655c1420a72
compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
patch: https://syzkaller.appspot.com/x/patch.diff?x=12d958c2580000
^ permalink raw reply [flat|nested] 16+ messages in thread
* Syzbot testing for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain
2024-08-22 8:11 [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
` (5 preceding siblings ...)
2025-12-01 11:43 ` Syzbot test for v3: ocfs2: fix kernel BUG in ocfs2_find_victim_chain Prithvi Tambewagh
@ 2025-12-01 12:17 ` Prithvi Tambewagh
2025-12-01 12:43 ` [syzbot] [ocfs2?] kernel BUG in ocfs2_claim_suballoc_bits syzbot
6 siblings, 1 reply; 16+ messages in thread
From: Prithvi Tambewagh @ 2025-12-01 12:17 UTC (permalink / raw)
To: syzbot+96d38c6e1655c1420a72, jlbec, joseph.qi, mark
Cc: linux-kernel, ocfs2-devel, syzkaller-bugs, Prithvi Tambewagh
#syz test git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 939f15e640f193616691d3bcde0089760e75b0d3
Signed-off-by: Prithvi Tambewagh <activprithvi@gmail.com>
---
fs/ocfs2/suballoc.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index 6ac4dcd54588..e93fc842bb20 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1992,6 +1992,16 @@ static int ocfs2_claim_suballoc_bits(struct ocfs2_alloc_context *ac,
}
cl = (struct ocfs2_chain_list *) &fe->id2.i_chain;
+ if (!le16_to_cpu(cl->cl_next_free_rec) ||
+ le16_to_cpu(cl->cl_next_free_rec) > le16_to_cpu(cl->cl_count)) {
+ status = ocfs2_error(ac->ac_inode->i_sb,
+ "Chain allocator dinode %llu has invalid next "
+ "free chain record %u, but only %u total\n",
+ (unsigned long long)le64_to_cpu(fe->i_blkno),
+ le16_to_cpu(cl->cl_next_free_rec),
+ le16_to_cpu(cl->cl_count));
+ goto bail;
+ }
victim = ocfs2_find_victim_chain(cl);
ac->ac_chain = victim;
base-commit: 939f15e640f193616691d3bcde0089760e75b0d3
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread