Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an issue:
WARNING: ODEBUG bug in nilfs_detach_log_writer
sci 000000002fc63a1f sctask 00000000cb1c8b43 nilfs_segctor_destroy
------------[ cut here ]------------
ODEBUG: free active (active state 0) object: 00000000243cd50f object type: timer_list hint: __ll_sc_atomic64_andnot arch/arm64/include/asm/atomic_ll_sc.h:-1 [inline]
ODEBUG: free active (active state 0) object: 00000000243cd50f object type: timer_list hint: arch_atomic64_andnot arch/arm64/include/asm/atomic.h:64 [inline]
ODEBUG: free active (active state 0) object: 00000000243cd50f object type: timer_list hint: raw_atomic64_andnot include/linux/atomic/atomic-arch-fallback.h:3675 [inline]
ODEBUG: free active (active state 0) object: 00000000243cd50f object type: timer_list hint: raw_atomic_long_andnot include/linux/atomic/atomic-long.h:964 [inline]
ODEBUG: free active (active state 0) object: 00000000243cd50f object type: timer_list hint: arch_clear_bit include/asm-generic/bitops/atomic.h:25 [inline]
ODEBUG: free active (active state 0) object: 00000000243cd50f object type: timer_list hint: clear_bit include/asm-generic/bitops/instrumented-atomic.h:42 [inline]
ODEBUG: free active (active state 0) object: 00000000243cd50f object type: timer_list hint: clear_nilfs_purging fs/nilfs2/the_nilfs.h:206 [inline]
ODEBUG: free active (active state 0) object: 00000000243cd50f object type: timer_list hint: nilfs_construction_timeout+0x0/0x50 fs/nilfs2/segment.c:2899
WARNING: CPU: 1 PID: 7086 at lib/debugobjects.c:615 debug_print_object lib/debugobjects.c:612 [inline]
WARNING: CPU: 1 PID: 7086 at lib/debugobjects.c:615 __debug_check_no_obj_freed lib/debugobjects.c:1099 [inline]
WARNING: CPU: 1 PID: 7086 at lib/debugobjects.c:615 debug_check_no_obj_freed+0x390/0x470 lib/debugobjects.c:1129
Modules linked in:
CPU: 1 UID: 0 PID: 7086 Comm: syz-executor Not tainted syzkaller #0 PREEMPT
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/30/2025
pstate: 63400005 (nZCv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--)
pc : debug_print_object lib/debugobjects.c:612 [inline]
pc : __debug_check_no_obj_freed lib/debugobjects.c:1099 [inline]
pc : debug_check_no_obj_freed+0x390/0x470 lib/debugobjects.c:1129
lr : debug_print_object lib/debugobjects.c:612 [inline]
lr : __debug_check_no_obj_freed lib/debugobjects.c:1099 [inline]
lr : debug_check_no_obj_freed+0x390/0x470 lib/debugobjects.c:1129
sp : ffff8000a1b578f0
x29: ffff8000a1b57930 x28: ffff0000dbe26c00 x27: 0000000000000000
x26: ffff80008aed7f20 x25: ffff0000dbe26a70 x24: ffff800082080b44
x23: ffff0000ca04be70 x22: ffff0000dbe26000 x21: dfff800000000000
x20: 0000000000000000 x19: ffff0000dbe26800 x18: 00000000ffffffff
x17: 626f206630356463 x16: ffff800082de9640 x15: 0000000000000001
x14: 1ffff0001436ae54 x13: 0000000000000000 x12: 0000000000000000
x11: 00000000778946ad x10: 0000000000ff0100 x9 : 73910471fe57b500
x8 : 73910471fe57b500 x7 : ffff8000805638d4 x6 : 0000000000000000
x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000002
x2 : 0000000000000002 x1 : 0000000100000000 x0 : 0000000000000000
Call trace:
debug_print_object lib/debugobjects.c:612 [inline] (P)
__debug_check_no_obj_freed lib/debugobjects.c:1099 [inline] (P)
debug_check_no_obj_freed+0x390/0x470 lib/debugobjects.c:1129 (P)
slab_free_hook mm/slub.c:2454 [inline]
slab_free mm/slub.c:6611 [inline]
kfree+0x120/0x600 mm/slub.c:6818
nilfs_segctor_destroy fs/nilfs2/segment.c:2817 [inline]
nilfs_detach_log_writer+0x684/0x9c4 fs/nilfs2/segment.c:2883
nilfs_put_super+0x4c/0x12c fs/nilfs2/super.c:509
generic_shutdown_super+0x12c/0x2b8 fs/super.c:642
kill_block_super+0x44/0x90 fs/super.c:1722
deactivate_locked_super+0xc4/0x12c fs/super.c:473
deactivate_super+0xe0/0x100 fs/super.c:506
cleanup_mnt+0x31c/0x3ac fs/namespace.c:1327
__cleanup_mnt+0x20/0x30 fs/namespace.c:1334
task_work_run+0x1dc/0x260 kernel/task_work.c:227
resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
exit_to_user_mode_loop+0xfc/0x178 kernel/entry/common.c:43
exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]
arm64_exit_to_user_mode arch/arm64/kernel/entry-common.c:103 [inline]
el0_svc+0x170/0x254 arch/arm64/kernel/entry-common.c:747
el0t_64_sync_handler+0x84/0x12c arch/arm64/kernel/entry-common.c:765
el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596
irq event stamp: 393728
hardirqs last enabled at (393727): [<ffff800080559f90>] vprintk_store+0x898/0xac8 kernel/printk/printk.c:2329
hardirqs last disabled at (393728): [<ffff80008ade9780>] el1_brk64+0x20/0x54 arch/arm64/kernel/entry-common.c:434
softirqs last enabled at (393526): [<ffff8000803d7488>] softirq_handle_end kernel/softirq.c:468 [inline]
softirqs last enabled at (393526): [<ffff8000803d7488>] handle_softirqs+0xaf8/0xc88 kernel/softirq.c:650
softirqs last disabled at (392817): [<ffff800080022024>] __do_softirq+0x14/0x20 kernel/softirq.c:656
---[ end trace 0000000000000000 ]---
kthread start to stop (sci 000000005be7e884)sctask 000000008631ea2b, nilfs_segctor_destroy
kthread stopped (sci 000000005be7e884)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000009d71d04a)sctask 00000000a0141cfe, nilfs_segctor_destroy
kthread stopped (sci 000000009d71d04a)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000002b2f1418)sctask 000000006c451d11, nilfs_segctor_destroy
kthread stopped (sci 000000002b2f1418)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000effbdfa6)sctask 00000000a6318a24, nilfs_segctor_destroy
kthread stopped (sci 00000000effbdfa6)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000000fdbe516)sctask 0000000026c32dd0, nilfs_segctor_destroy
kthread stopped (sci 000000000fdbe516)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000001905d913)sctask 0000000050a4687e, nilfs_segctor_destroy
kthread stopped (sci 000000001905d913)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000a3eeddcd)sctask 0000000079f3d7c8, nilfs_segctor_destroy
kthread stopped (sci 00000000a3eeddcd)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000095360f23)sctask 0000000017af06a9, nilfs_segctor_destroy
kthread stopped (sci 0000000095360f23)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000005a9a2e80)sctask 00000000450f99c2, nilfs_segctor_destroy
kthread stopped (sci 000000005a9a2e80)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000a5326494)sctask 000000003bc4f8b8, nilfs_segctor_destroy
kthread stopped (sci 00000000a5326494)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000a603b099)sctask 000000008631ea2b, nilfs_segctor_destroy
kthread stopped (sci 00000000a603b099)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000affd4105)sctask 0000000064524a43, nilfs_segctor_destroy
kthread stopped (sci 00000000affd4105)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000028cafbde)sctask 000000005945da3a, nilfs_segctor_destroy
kthread stopped (sci 0000000028cafbde)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000004d042e5c)sctask 0000000034209c98, nilfs_segctor_destroy
kthread stopped (sci 000000004d042e5c)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000d5a02571)sctask 000000008197e345, nilfs_segctor_destroy
kthread stopped (sci 00000000d5a02571)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000cb8a270a)sctask 00000000a075cdeb, nilfs_segctor_destroy
kthread stopped (sci 00000000cb8a270a)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000023a2d3ea)sctask 00000000952a7887, nilfs_segctor_destroy
kthread stopped (sci 0000000023a2d3ea)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000ce675362)sctask 000000000df5a992, nilfs_segctor_destroy
kthread stopped (sci 00000000ce675362)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000576731dc)sctask 0000000082cdf5af, nilfs_segctor_destroy
kthread stopped (sci 00000000576731dc)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000e5b3a0b0)sctask 00000000e4102e6b, nilfs_segctor_destroy
kthread stopped (sci 00000000e5b3a0b0)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000008c9fa24c)sctask 00000000ca2032a8, nilfs_segctor_destroy
kthread stopped (sci 000000008c9fa24c)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000072959ad0)sctask 00000000d02d4a8e, nilfs_segctor_destroy
kthread stopped (sci 0000000072959ad0)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000dc9d7abc)sctask 00000000979ed9ea, nilfs_segctor_destroy
kthread stopped (sci 00000000dc9d7abc)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000b18846c3)sctask 0000000076687d8f, nilfs_segctor_destroy
kthread stopped (sci 00000000b18846c3)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000536e8ffd)sctask 000000007798b86f, nilfs_segctor_destroy
kthread stopped (sci 00000000536e8ffd)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000006b6f7633)sctask 0000000087ea6322, nilfs_segctor_destroy
kthread stopped (sci 000000006b6f7633)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000eadf0db0)sctask 0000000020355604, nilfs_segctor_destroy
kthread stopped (sci 00000000eadf0db0)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000007344f784)sctask 00000000e08f1ab4, nilfs_segctor_destroy
kthread stopped (sci 000000007344f784)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000010fbc4d9)sctask 00000000f03c335c, nilfs_segctor_destroy
kthread stopped (sci 0000000010fbc4d9)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000f46a4493)sctask 00000000ba507f0b, nilfs_segctor_destroy
kthread stopped (sci 00000000f46a4493)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000060b110ed)sctask 000000003b1ab5ad, nilfs_segctor_destroy
kthread stopped (sci 0000000060b110ed)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000694aac4c)sctask 0000000060a56e61, nilfs_segctor_destroy
kthread stopped (sci 00000000694aac4c)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000009864c2ac)sctask 000000006e998649, nilfs_segctor_destroy
kthread stopped (sci 000000009864c2ac)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000e0e3a3e5)sctask 00000000ac1e6b29, nilfs_segctor_destroy
kthread stopped (sci 00000000e0e3a3e5)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000005a10065e)sctask 00000000057002a4, nilfs_segctor_destroy
kthread stopped (sci 000000005a10065e)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000e4f1117f)sctask 00000000d1405353, nilfs_segctor_destroy
kthread stopped (sci 00000000e4f1117f)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000001b211764)sctask 000000006280584a, nilfs_segctor_destroy
kthread stopped (sci 000000001b211764)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000090abbc6)sctask 00000000c3e1a812, nilfs_segctor_destroy
kthread stopped (sci 00000000090abbc6)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000006e76001d)sctask 00000000eed8bd1d, nilfs_segctor_destroy
kthread stopped (sci 000000006e76001d)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000009c3f81c)sctask 00000000030407b5, nilfs_segctor_destroy
kthread stopped (sci 0000000009c3f81c)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000006c06e552)sctask 00000000368252a8, nilfs_segctor_destroy
kthread stopped (sci 000000006c06e552)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000000ea9b08)sctask 0000000026c266fc, nilfs_segctor_destroy
kthread stopped (sci 0000000000ea9b08)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000694aac4c)sctask 0000000012ac78da, nilfs_segctor_destroy
kthread stopped (sci 00000000694aac4c)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000040949351)sctask 00000000a59115fd, nilfs_segctor_destroy
kthread stopped (sci 0000000040949351)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000020aa063d)sctask 00000000b617a775, nilfs_segctor_destroy
kthread stopped (sci 0000000020aa063d)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 000000006c416ffd)sctask 00000000da61bfc3, nilfs_segctor_destroy
kthread stopped (sci 000000006c416ffd)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 00000000cb84fb3c)sctask 0000000030bae658, nilfs_segctor_destroy
kthread stopped (sci 00000000cb84fb3c)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
kthread start to stop (sci 0000000023c9588c)sctask 00000000bfd16b12, nilfs_segctor_destroy
kthread stopped (sci 0000000023c9588c)sctask 0000000000000000 thread return 0, nilfs_segctor_destroy
NILFS (loop4): disposed unprocessed dirty file(s) when stopping log writer
console output:
https://syzkaller.appspot.com/x/log.txt?x=1252d3cd980000
patch:
https://syzkaller.appspot.com/x/patch.diff?x=16fbef34580000