The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: syzbot <syzbot+743079a09058321247d8@syzkaller.appspotmail.com>
To: dwmw2@infradead.org, linux-kernel@vger.kernel.org,
	 linux-mtd@lists.infradead.org, richard@nod.at,
	 syzkaller-bugs@googlegroups.com
Subject: [syzbot] [jffs2?] possible deadlock in jffs2_do_clear_inode (2)
Date: Thu, 06 Aug 2026 17:00:36 -0700	[thread overview]
Message-ID: <6a752024.b50370da.49fe0.0017.GAE@google.com> (raw)

Hello,

syzbot found the following issue on:

HEAD commit:    848acc8ffe1b Merge tag 'fsverity-for-linus' of git://git.k..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13a07e32580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=4e38b15c29e6a1d9
dashboard link: https://syzkaller.appspot.com/bug?extid=743079a09058321247d8
compiler:       Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/9bf3ffd710de/disk-848acc8f.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/770c0a63a80c/vmlinux-848acc8f.xz
kernel image: https://storage.googleapis.com/syzbot-assets/c54f9393cb03/bzImage-848acc8f.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+743079a09058321247d8@syzkaller.appspotmail.com

======================================================
WARNING: possible circular locking dependency detected
syzkaller #0 Tainted: G                 N 
------------------------------------------------------
syz.3.73/6195 is trying to acquire lock:
ffff88805432b1e0 (&f->sem){+.+.}-{4:4}, at: jffs2_do_clear_inode+0x62/0x390 fs/jffs2/readinode.c:1419

but task is already holding lock:
ffffffff8ec848e0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim mm/page_alloc.c:4402 [inline]
ffffffff8ec848e0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim+0xbd/0x310 mm/page_alloc.c:4427

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (fs_reclaim){+.+.}-{0:0}:
       __fs_reclaim_acquire mm/page_alloc.c:4329 [inline]
       fs_reclaim_acquire+0x71/0x100 mm/page_alloc.c:4343
       might_alloc include/linux/sched/mm.h:317 [inline]
       slab_pre_alloc_hook mm/slub.c:4537 [inline]
       slab_alloc_node mm/slub.c:4897 [inline]
       kmem_cache_alloc_noprof+0x64/0x5f0 mm/slub.c:4931
       jffs2_do_read_inode+0x33f/0x6a0 fs/jffs2/readinode.c:1372
       jffs2_iget+0x228/0xcc0 fs/jffs2/fs.c:277
       jffs2_do_fill_super+0x59d/0xc50 fs/jffs2/fs.c:578
       mtd_get_sb+0x18a/0x410 drivers/mtd/mtdsuper.c:57
       mtd_get_sb_by_nr drivers/mtd/mtdsuper.c:88 [inline]
       get_tree_mtd+0x4bd/0x7d0 drivers/mtd/mtdsuper.c:158
       vfs_get_tree+0x92/0x2a0 fs/super.c:1700
       fc_mount fs/namespace.c:1198 [inline]
       do_new_mount_fc fs/namespace.c:3765 [inline]
       do_new_mount+0x319/0xdc0 fs/namespace.c:3841
       do_mount fs/namespace.c:4174 [inline]
       __do_sys_mount fs/namespace.c:4390 [inline]
       __se_sys_mount+0x31d/0x420 fs/namespace.c:4367
       do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
       do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> #0 (&f->sem){+.+.}-{4:4}:
       check_prev_add kernel/locking/lockdep.c:3165 [inline]
       check_prevs_add kernel/locking/lockdep.c:3284 [inline]
       validate_chain kernel/locking/lockdep.c:3908 [inline]
       __lock_acquire+0x1520/0x2cf0 kernel/locking/lockdep.c:5237
       lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
       __mutex_lock_common kernel/locking/mutex.c:646 [inline]
       __mutex_lock+0x19d/0x1550 kernel/locking/mutex.c:821
       jffs2_do_clear_inode+0x62/0x390 fs/jffs2/readinode.c:1419
       evict+0x624/0xb50 fs/inode.c:825
       dispose_list fs/inode.c:867 [inline]
       prune_icache_sb+0x223/0x2d0 fs/inode.c:1014
       super_cache_scan+0x38d/0x4a0 fs/super.c:225
       do_shrink_slab+0x6d0/0x10e0 mm/shrinker.c:443
       shrink_slab_memcg mm/shrinker.c:560 [inline]
       shrink_slab+0x838/0x1220 mm/shrinker.c:638
       shrink_one+0x2a2/0x730 mm/vmscan.c:5026
       shrink_many mm/vmscan.c:5087 [inline]
       lru_gen_shrink_node mm/vmscan.c:5165 [inline]
       shrink_node+0x3303/0x3b60 mm/vmscan.c:6154
       shrink_zones mm/vmscan.c:6410 [inline]
       do_try_to_free_pages+0x6a3/0x1990 mm/vmscan.c:6472
       try_to_free_pages+0x90a/0xe50 mm/vmscan.c:6711
       __perform_reclaim mm/page_alloc.c:4405 [inline]
       __alloc_pages_direct_reclaim+0x148/0x310 mm/page_alloc.c:4427
       __alloc_pages_slowpath+0x59d/0xcc0 mm/page_alloc.c:4876
       __alloc_frozen_pages_noprof+0x31f/0x380 mm/page_alloc.c:5317
       alloc_pages_mpol+0x212/0x380 mm/mempolicy.c:2490
       alloc_frozen_pages_noprof mm/mempolicy.c:2561 [inline]
       alloc_pages_noprof+0xac/0x2a0 mm/mempolicy.c:2581
       alloc_image_page+0x23/0x130 kernel/power/snapshot.c:231
       preallocate_image_pages kernel/power/snapshot.c:1654 [inline]
       preallocate_image_memory+0x76/0x140 kernel/power/snapshot.c:1681
       hibernate_preallocate_memory+0x43c/0x750 kernel/power/snapshot.c:1960
       hibernation_snapshot+0x126/0x3d0 kernel/power/hibernate.c:430
       hibernate+0x28f/0x680 kernel/power/hibernate.c:811
       state_store+0x234/0x290 kernel/power/main.c:821
       kernfs_fop_write_iter+0x3a4/0x540 fs/kernfs/file.c:345
       new_sync_write fs/read_write.c:595 [inline]
       vfs_write+0x612/0xba0 fs/read_write.c:687
       ksys_write+0x150/0x270 fs/read_write.c:739
       do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
       do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(fs_reclaim);
                               lock(&f->sem);
                               lock(fs_reclaim);
  lock(&f->sem);

 *** DEADLOCK ***

9 locks held by syz.3.73/6195:
 #0: ffff88807a0a70b0 (&f->f_pos_lock){+.+.}-{4:4}, at: fdget_pos+0x246/0x320 fs/file.c:1259
 #1: ffff888034304450 (sb_writers#7){.+.+}-{0:0}, at: file_start_write include/linux/fs.h:2733 [inline]
 #1: ffff888034304450 (sb_writers#7){.+.+}-{0:0}, at: vfs_write+0x22b/0xba0 fs/read_write.c:683
 #2: ffff88805386dc80 (&of->mutex){+.+.}-{4:4}, at: kernfs_fop_write_iter+0x1d8/0x540 fs/kernfs/file.c:336
 #3: ffff88801f28d968 (kn->active#59){.+.+}-{0:0}, at: kernfs_get_active_of fs/kernfs/file.c:73 [inline]
 #3: ffff88801f28d968 (kn->active#59){.+.+}-{0:0}, at: kernfs_fop_write_iter+0x22b/0x540 fs/kernfs/file.c:337
 #4: ffffffff8ea02160 (system_transition_mutex){+.+.}-{4:4}, at: lock_system_sleep+0x49/0x70 kernel/power/main.c:71
 #5: ffffffff8f5e45e0 (device_hotplug_lock){+.+.}-{4:4}, at: hibernate+0x25b/0x680 kernel/power/hibernate.c:805
 #6: ffffffff8f3d5240 (acpi_scan_lock){+.+.}-{4:4}, at: acpi_pm_start drivers/acpi/sleep.c:533 [inline]
 #6: ffffffff8f3d5240 (acpi_scan_lock){+.+.}-{4:4}, at: acpi_hibernation_begin+0xc8/0x110 drivers/acpi/sleep.c:945
 #7: ffffffff8ec848e0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim mm/page_alloc.c:4402 [inline]
 #7: ffffffff8ec848e0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim+0xbd/0x310 mm/page_alloc.c:4427
 #8: ffff8880358a40d8 (&type->s_umount_key#83){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:566 [inline]
 #8: ffff8880358a40d8 (&type->s_umount_key#83){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4a0 fs/super.c:198

stack backtrace:
CPU: 0 UID: 0 PID: 6195 Comm: syz.3.73 Tainted: G                 N  syzkaller #0 PREEMPT(full) 
Tainted: [N]=TEST
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 print_circular_bug+0x2e1/0x300 kernel/locking/lockdep.c:2043
 check_noncircular+0x12e/0x150 kernel/locking/lockdep.c:2175
 check_prev_add kernel/locking/lockdep.c:3165 [inline]
 check_prevs_add kernel/locking/lockdep.c:3284 [inline]
 validate_chain kernel/locking/lockdep.c:3908 [inline]
 __lock_acquire+0x1520/0x2cf0 kernel/locking/lockdep.c:5237
 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
 __mutex_lock_common kernel/locking/mutex.c:646 [inline]
 __mutex_lock+0x19d/0x1550 kernel/locking/mutex.c:821
 jffs2_do_clear_inode+0x62/0x390 fs/jffs2/readinode.c:1419
 evict+0x624/0xb50 fs/inode.c:825
 dispose_list fs/inode.c:867 [inline]
 prune_icache_sb+0x223/0x2d0 fs/inode.c:1014
 super_cache_scan+0x38d/0x4a0 fs/super.c:225
 do_shrink_slab+0x6d0/0x10e0 mm/shrinker.c:443
 shrink_slab_memcg mm/shrinker.c:560 [inline]
 shrink_slab+0x838/0x1220 mm/shrinker.c:638
 shrink_one+0x2a2/0x730 mm/vmscan.c:5026
 shrink_many mm/vmscan.c:5087 [inline]
 lru_gen_shrink_node mm/vmscan.c:5165 [inline]
 shrink_node+0x3303/0x3b60 mm/vmscan.c:6154
 shrink_zones mm/vmscan.c:6410 [inline]
 do_try_to_free_pages+0x6a3/0x1990 mm/vmscan.c:6472
 try_to_free_pages+0x90a/0xe50 mm/vmscan.c:6711
 __perform_reclaim mm/page_alloc.c:4405 [inline]
 __alloc_pages_direct_reclaim+0x148/0x310 mm/page_alloc.c:4427
 __alloc_pages_slowpath+0x59d/0xcc0 mm/page_alloc.c:4876
 __alloc_frozen_pages_noprof+0x31f/0x380 mm/page_alloc.c:5317
 alloc_pages_mpol+0x212/0x380 mm/mempolicy.c:2490
 alloc_frozen_pages_noprof mm/mempolicy.c:2561 [inline]
 alloc_pages_noprof+0xac/0x2a0 mm/mempolicy.c:2581
 alloc_image_page+0x23/0x130 kernel/power/snapshot.c:231
 preallocate_image_pages kernel/power/snapshot.c:1654 [inline]
 preallocate_image_memory+0x76/0x140 kernel/power/snapshot.c:1681
 hibernate_preallocate_memory+0x43c/0x750 kernel/power/snapshot.c:1960
 hibernation_snapshot+0x126/0x3d0 kernel/power/hibernate.c:430
 hibernate+0x28f/0x680 kernel/power/hibernate.c:811
 state_store+0x234/0x290 kernel/power/main.c:821
 kernfs_fop_write_iter+0x3a4/0x540 fs/kernfs/file.c:345
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x612/0xba0 fs/read_write.c:687
 ksys_write+0x150/0x270 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fb3bdd9e019
Code: Unable to access opcode bytes at 0x7fb3bdd9dfef.
RSP: 002b:00007fb3beb8f028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007fb3be025fa0 RCX: 00007fb3bdd9e019
RDX: 0000000000000004 RSI: 0000200000000100 RDI: 0000000000000003
RBP: 00007fb3bde3500c R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fb3be026038 R14: 00007fb3be025fa0 R15: 00007ffecece6378
 </TASK>
PM: hibernation: Allocated 724545 pages for snapshot
PM: hibernation: Allocated 2898180 kbytes in 41.10 seconds (70.51 MB/s)
printk: Suspending console(s) (use no_console_suspend to debug)


---
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.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

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

                 reply	other threads:[~2026-08-07  0:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6a752024.b50370da.49fe0.0017.GAE@google.com \
    --to=syzbot+743079a09058321247d8@syzkaller.appspotmail.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard@nod.at \
    --cc=syzkaller-bugs@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox