syzbot


possible deadlock in __ntfs_clear_inode

Status: upstream: reported on 2022/11/25 10:07
Subsystems: ntfs
[Documentation on labels]
Reported-by: syzbot+5ebb8d0e9b8c47867596@syzkaller.appspotmail.com
First crash: 375d, last: 2h53m
Discussions (8)
Title Replies (including bot) Last reply
[syzbot] Monthly ntfs report (Nov 2023) 0 (1) 2023/11/05 13:07
[syzbot] Monthly ntfs report (Oct 2023) 0 (1) 2023/10/04 13:13
[syzbot] Monthly ntfs report (Sep 2023) 0 (1) 2023/09/04 08:31
[syzbot] Monthly ntfs report (Aug 2023) 0 (1) 2023/08/03 07:02
[syzbot] Monthly ntfs report (Jul 2023) 0 (1) 2023/07/03 09:03
[syzbot] Monthly ntfs report (May 2023) 0 (1) 2023/05/02 07:18
[syzbot] Monthly ntfs report 0 (1) 2023/03/31 15:00
[syzbot] possible deadlock in __ntfs_clear_inode 0 (1) 2022/11/25 10:07
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-4.19 possible deadlock in __ntfs_clear_inode ntfs 2 340d 359d 0/1 upstream: reported on 2022/12/10 22:52

Sample crash report:
======================================================
WARNING: possible circular locking dependency detected
6.7.0-rc3-syzkaller-00284-g815fb87b7530 #0 Not tainted
------------------------------------------------------
kswapd0/86 is trying to acquire lock:
ffff88805b64c300 (&rl->lock){++++}-{3:3}, at: __ntfs_clear_inode+0x32/0x1f0 fs/ntfs/inode.c:2189

but task is already holding lock:
ffffffff8da12140 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:6716 [inline]
ffffffff8da12140 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0xb38/0x2f50 mm/vmscan.c:7088

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #2 (fs_reclaim){+.+.}-{0:0}:
       lock_acquire+0x1e3/0x530 kernel/locking/lockdep.c:5754
       __fs_reclaim_acquire mm/page_alloc.c:3693 [inline]
       fs_reclaim_acquire+0x87/0x120 mm/page_alloc.c:3707
       might_alloc include/linux/sched/mm.h:303 [inline]
       prepare_alloc_pages+0x147/0x5b0 mm/page_alloc.c:4339
       __alloc_pages+0x165/0x680 mm/page_alloc.c:4557
       alloc_pages_mpol+0x3de/0x640 mm/mempolicy.c:2133
       alloc_pages mm/mempolicy.c:2204 [inline]
       folio_alloc+0x12a/0x330 mm/mempolicy.c:2211
       filemap_alloc_folio+0xde/0x500 mm/filemap.c:974
       do_read_cache_folio+0xed/0x810 mm/filemap.c:3655
       do_read_cache_page+0x30/0x200 mm/filemap.c:3757
       read_mapping_page include/linux/pagemap.h:871 [inline]
       ntfs_map_page fs/ntfs/aops.h:75 [inline]
       map_mft_record_page fs/ntfs/mft.c:73 [inline]
       map_mft_record+0x1cd/0x630 fs/ntfs/mft.c:156
       ntfs_read_locked_inode+0x199/0x4940 fs/ntfs/inode.c:550
       ntfs_iget+0x113/0x190 fs/ntfs/inode.c:177
       ntfs_lookup+0x28e/0xe00 fs/ntfs/namei.c:117
       lookup_open fs/namei.c:3455 [inline]
       open_last_lookups fs/namei.c:3546 [inline]
       path_openat+0x1010/0x3290 fs/namei.c:3776
       do_filp_open+0x234/0x490 fs/namei.c:3809
       do_sys_openat2+0x13e/0x1d0 fs/open.c:1440
       do_sys_open fs/open.c:1455 [inline]
       __do_sys_openat fs/open.c:1471 [inline]
       __se_sys_openat fs/open.c:1466 [inline]
       __x64_sys_openat+0x247/0x290 fs/open.c:1466
       do_syscall_x64 arch/x86/entry/common.c:51 [inline]
       do_syscall_64+0x45/0x110 arch/x86/entry/common.c:82
       entry_SYSCALL_64_after_hwframe+0x63/0x6b

-> #1 (&ni->mrec_lock){+.+.}-{3:3}:
       lock_acquire+0x1e3/0x530 kernel/locking/lockdep.c:5754
       __mutex_lock_common kernel/locking/mutex.c:603 [inline]
       __mutex_lock+0x136/0xd60 kernel/locking/mutex.c:747
       map_mft_record+0x4c/0x630 fs/ntfs/mft.c:154
       ntfs_attr_extend_allocation+0x2d0/0x3ec0 fs/ntfs/attrib.c:2002
       ntfs_prepare_file_for_write fs/ntfs/file.c:391 [inline]
       ntfs_file_write_iter+0x37e/0x1970 fs/ntfs/file.c:1907
       call_write_iter include/linux/fs.h:2020 [inline]
       new_sync_write fs/read_write.c:491 [inline]
       vfs_write+0x792/0xb20 fs/read_write.c:584
       ksys_write+0x1a0/0x2c0 fs/read_write.c:637
       do_syscall_x64 arch/x86/entry/common.c:51 [inline]
       do_syscall_64+0x45/0x110 arch/x86/entry/common.c:82
       entry_SYSCALL_64_after_hwframe+0x63/0x6b

-> #0 (&rl->lock){++++}-{3:3}:
       check_prev_add kernel/locking/lockdep.c:3134 [inline]
       check_prevs_add kernel/locking/lockdep.c:3253 [inline]
       validate_chain+0x1909/0x5ab0 kernel/locking/lockdep.c:3869
       __lock_acquire+0x1345/0x1fd0 kernel/locking/lockdep.c:5137
       lock_acquire+0x1e3/0x530 kernel/locking/lockdep.c:5754
       down_write+0x3a/0x50 kernel/locking/rwsem.c:1579
       __ntfs_clear_inode+0x32/0x1f0 fs/ntfs/inode.c:2189
       ntfs_evict_big_inode+0x2b1/0x480 fs/ntfs/inode.c:2278
       evict+0x2a4/0x630 fs/inode.c:666
       dispose_list fs/inode.c:699 [inline]
       prune_icache_sb+0x239/0x2e0 fs/inode.c:884
       super_cache_scan+0x382/0x4a0 fs/super.c:230
       do_shrink_slab+0x6ed/0x1130 mm/shrinker.c:435
       shrink_slab_memcg mm/shrinker.c:548 [inline]
       shrink_slab+0x883/0x14c0 mm/shrinker.c:626
       shrink_node_memcgs mm/vmscan.c:5814 [inline]
       shrink_node+0x11d6/0x28c0 mm/vmscan.c:5847
       kswapd_shrink_node mm/vmscan.c:6638 [inline]
       balance_pgdat mm/vmscan.c:6828 [inline]
       kswapd+0x1aab/0x2f50 mm/vmscan.c:7088
       kthread+0x2d3/0x370 kernel/kthread.c:388
       ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
       ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:242

other info that might help us debug this:

Chain exists of:
  &rl->lock --> &ni->mrec_lock --> fs_reclaim

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(fs_reclaim);
                               lock(&ni->mrec_lock);
                               lock(fs_reclaim);
  lock(&rl->lock);

 *** DEADLOCK ***

2 locks held by kswapd0/86:
 #0: ffffffff8da12140 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:6716 [inline]
 #0: ffffffff8da12140 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0xb38/0x2f50 mm/vmscan.c:7088
 #1: ffff8880532e40e0 (&type->s_umount_key#55){++++}-{3:3}, at: super_trylock_shared fs/super.c:610 [inline]
 #1: ffff8880532e40e0 (&type->s_umount_key#55){++++}-{3:3}, at: super_cache_scan+0x94/0x4a0 fs/super.c:203

stack backtrace:
CPU: 1 PID: 86 Comm: kswapd0 Not tainted 6.7.0-rc3-syzkaller-00284-g815fb87b7530 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/10/2023
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1e7/0x2d0 lib/dump_stack.c:106
 check_noncircular+0x366/0x490 kernel/locking/lockdep.c:2187
 check_prev_add kernel/locking/lockdep.c:3134 [inline]
 check_prevs_add kernel/locking/lockdep.c:3253 [inline]
 validate_chain+0x1909/0x5ab0 kernel/locking/lockdep.c:3869
 __lock_acquire+0x1345/0x1fd0 kernel/locking/lockdep.c:5137
 lock_acquire+0x1e3/0x530 kernel/locking/lockdep.c:5754
 down_write+0x3a/0x50 kernel/locking/rwsem.c:1579
 __ntfs_clear_inode+0x32/0x1f0 fs/ntfs/inode.c:2189
 ntfs_evict_big_inode+0x2b1/0x480 fs/ntfs/inode.c:2278
 evict+0x2a4/0x630 fs/inode.c:666
 dispose_list fs/inode.c:699 [inline]
 prune_icache_sb+0x239/0x2e0 fs/inode.c:884
 super_cache_scan+0x382/0x4a0 fs/super.c:230
 do_shrink_slab+0x6ed/0x1130 mm/shrinker.c:435
 shrink_slab_memcg mm/shrinker.c:548 [inline]
 shrink_slab+0x883/0x14c0 mm/shrinker.c:626
 shrink_node_memcgs mm/vmscan.c:5814 [inline]
 shrink_node+0x11d6/0x28c0 mm/vmscan.c:5847
 kswapd_shrink_node mm/vmscan.c:6638 [inline]
 balance_pgdat mm/vmscan.c:6828 [inline]
 kswapd+0x1aab/0x2f50 mm/vmscan.c:7088
 kthread+0x2d3/0x370 kernel/kthread.c:388
 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:242
 </TASK>

Crashes (289):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2023/12/02 10:24 upstream 815fb87b7530 f819d6f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in __ntfs_clear_inode
2023/11/21 04:47 upstream 98b1cc82c4af cb976f63 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in __ntfs_clear_inode
2023/09/26 15:45 upstream 6465e260f487 0b6a67ac .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root possible deadlock in __ntfs_clear_inode
2023/10/13 00:51 upstream e8c127b05766 6388bc36 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream possible deadlock in __ntfs_clear_inode
2023/12/05 06:13 upstream bee0e7762ad2 f819d6f7 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/12/04 04:21 upstream 33cc938e65a9 f819d6f7 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/12/04 01:37 upstream 33cc938e65a9 f819d6f7 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/12/02 11:46 upstream 815fb87b7530 f819d6f7 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/12/02 04:01 upstream 815fb87b7530 f819d6f7 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/12/01 08:31 upstream 6172a5180fcc f819d6f7 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/28 07:21 upstream df60cee26a2e 9fe51b7c .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/27 00:44 upstream d2da77f431ac 5b429f39 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/26 05:12 upstream b46ae77f6787 5b429f39 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/26 01:37 upstream b46ae77f6787 5b429f39 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/23 19:11 upstream 9b6de136b5f0 5b429f39 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/23 13:22 upstream 9b6de136b5f0 fc59b78e .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/21 15:24 upstream 98b1cc82c4af cb976f63 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/20 10:54 upstream eb3479bc23fa cb976f63 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/20 05:44 upstream eb3479bc23fa cb976f63 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/20 04:07 upstream eb3479bc23fa cb976f63 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/19 19:56 upstream 037266a5f723 cb976f63 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/18 03:45 upstream 6bc40e44f1dd cb976f63 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/17 06:20 upstream 7475e51b8796 cb976f63 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/14 05:45 upstream 9bacdd8996c7 cb976f63 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/12 05:45 upstream 1b907d050735 6d6dbf8a .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/12 03:59 upstream 1b907d050735 6d6dbf8a .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/11 02:01 upstream 18553507f60f d80eec66 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/07 21:00 upstream be3ca57cfb77 83211397 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/07 14:30 upstream be3ca57cfb77 83211397 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/07 01:36 upstream be3ca57cfb77 83211397 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/06 10:18 upstream d2f51b3516da 500bfdc4 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/03 00:47 upstream 4652b8e4f3ff c4ac074c .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/11/01 01:13 upstream 89ed67ef126c 69904c9f .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/30 07:21 upstream ffc253263a13 3c418d72 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/28 20:37 upstream 2af9b20dbb39 3c418d72 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/28 08:56 upstream 56567a20b22b 3c418d72 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/27 18:17 upstream 750b95887e56 d0fab643 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/24 06:55 upstream e017769f4ce2 af8d2e46 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/23 22:04 upstream e017769f4ce2 af8d2e46 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/22 17:39 upstream 1acfd2bd3f0d 361b23dc .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/22 08:54 upstream 1acfd2bd3f0d 361b23dc .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/19 07:12 upstream dd72f9c7e512 342b9c55 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/13 13:36 upstream 10a6e5feccb8 6388bc36 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/13 02:00 upstream e8c127b05766 6388bc36 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/12 21:31 upstream 401644852d0b 6388bc36 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/10 12:11 upstream 94f6f0550c62 83165b57 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/10 01:12 upstream 94f6f0550c62 c9be5398 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/09 08:21 upstream 94f6f0550c62 5e837c76 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/09 00:49 upstream 94f6f0550c62 5e837c76 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/07 07:58 upstream 82714078aee4 5e837c76 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/10/07 06:52 upstream 82714078aee4 5e837c76 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in __ntfs_clear_inode
2023/04/28 10:08 upstream 91ec4b0d11fe 70a605de .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in __ntfs_clear_inode
2023/04/13 06:50 upstream 0bcc40255504 82d5e53e .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root possible deadlock in __ntfs_clear_inode
2022/11/24 19:57 upstream 4312098baf37 ff68ff8f .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in __ntfs_clear_inode
2023/02/24 08:09 linux-next 0222aa9800b2 9e2ebb3c .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in __ntfs_clear_inode
* Struck through repros no longer work on HEAD.