Re: [syzbot] [fuse?] possible deadlock in __folio_end_writeback

From: Hillf Danton

Date: Tue Oct 07 2025 - 21:10:42 EST


> Date: Tue, 07 Oct 2025 14:19:29 -0700 [thread overview]
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: cbf33b8e0b36 Merge tag 'bpf-fixes' of git://git.kernel.org..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=17a25ee2580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=1b4263e12240e6e1
> dashboard link: https://syzkaller.appspot.com/bug?extid=27727256237e6bdd3649
> 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=14eaea7c580000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=134c4304580000

#syz test

--- x/lib/flex_proportions.c
+++ y/lib/flex_proportions.c
@@ -64,12 +64,14 @@ void fprop_global_destroy(struct fprop_g
bool fprop_new_period(struct fprop_global *p, int periods)
{
s64 events = percpu_counter_sum(&p->events);
+ unsigned long flags;

/*
* Don't do anything if there are no events.
*/
if (events <= 1)
return false;
+ local_irq_save(flags);
preempt_disable_nested();
write_seqcount_begin(&p->sequence);
if (periods < 64)
@@ -79,6 +81,7 @@ bool fprop_new_period(struct fprop_globa
p->period += periods;
write_seqcount_end(&p->sequence);
preempt_enable_nested();
+ local_irq_restore(flags);

return true;
}
--