FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 1
CPU: 0 UID: 0 PID: 5319 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
fail_dump lib/fault-inject.c:73 [inline]
should_fail_ex+0x410/0x560 lib/fault-inject.c:174
prepare_alloc_pages+0x223/0x600 mm/page_alloc.c:5120
__alloc_frozen_pages_noprof+0x185/0x5a0 mm/page_alloc.c:5421
alloc_pages_mpol+0x21e/0x390 mm/mempolicy.c:2486
folio_alloc_mpol_noprof+0x39/0x160 mm/mempolicy.c:2505
vma_alloc_folio_noprof+0xe1/0x1e0 mm/mempolicy.c:2540
folio_prealloc mm/memory.c:-1 [inline]
wp_page_copy mm/memory.c:4007 [inline]
do_wp_page+0x117d/0x4b80 mm/memory.c:4472
handle_pte_fault mm/memory.c:6582 [inline]
__handle_mm_fault mm/memory.c:6707 [inline]
handle_mm_fault+0x15d7/0x3750 mm/memory.c:6876
do_user_addr_fault+0xa4f/0x1340 arch/x86/mm/fault.c:1343
handle_page_fault arch/x86/mm/fault.c:1483 [inline]
exc_page_fault+0x6a/0xc0 arch/x86/mm/fault.c:1536
asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:595
RIP: 0033:0x7f7671055258
Code: 85 ed 74 3b 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 48 39 f0 72 1b 4d 8b 07 49 89 c1 49 29 f1 47 0f b6 0c 08 45 84 c9 74 08 <45> 88 0c 00 49 8b 47 10 48 83 c0 01 49 89 47 10 83 e9 01 73 d3 41
RSP: 002b:00007f76720c1430 EFLAGS: 00010202
RAX: 000000000004a003 RBX: 00007f76720c14f0 RCX: 0000000000000101
RDX: 000000000000007f RSI: 0000000000000200 RDI: 00007f76720c1590
RBP: 0000000000000102 R08: 00007f7665000000 R09: 0000000000000001
R10: 000020000001c302 R11: 000000000000968b R12: 0000000000000181
R13: 00007f7671255020 R14: 0000000000000011 R15: 00007f76720c1590
Huh VM_FAULT_OOM leaked out to the #PF handler. Retrying PF
loop0: detected capacity change from 0 to 32768
=======================================================
WARNING: The mand mount option has been deprecated and
and is ignored by this kernel. Remove the mand
option from the mount to silence this warning.
=======================================================
XFS (loop0): Mounting V5 Filesystem bfdc47fc-10d8-4eed-a562-11a831b3f791
XFS (loop0): Ending clean mount
XFS (loop0): Quotacheck needed: Please wait.
XFS (loop0): Quotacheck: Done.
============================================
WARNING: possible recursive locking detected
syzkaller #0 Not tainted
--------------------------------------------
syz.0.0/5319 is trying to acquire lock:
ffff888052402540 (&xfs_nondir_ilock_class){++++}-{4:4}, at: xfs_reclaim_inode fs/xfs/xfs_icache.c:1042 [inline]
ffff888052402540 (&xfs_nondir_ilock_class){++++}-{4:4}, at: xfs_icwalk_process_inode fs/xfs/xfs_icache.c:1734 [inline]
ffff888052402540 (&xfs_nondir_ilock_class){++++}-{4:4}, at: xfs_icwalk_ag+0x12b7/0x1980 fs/xfs/xfs_icache.c:1816
but task is already holding lock:
ffff888052400100 (&xfs_nondir_ilock_class){++++}-{4:4}, at: xfs_ilock_for_iomap fs/xfs/xfs_iomap.c:792 [inline]
ffff888052400100 (&xfs_nondir_ilock_class){++++}-{4:4}, at: xfs_buffered_write_iomap_begin+0x674/0x2350 fs/xfs/xfs_iomap.c:1825
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&xfs_nondir_ilock_class);
lock(&xfs_nondir_ilock_class);
*** DEADLOCK ***
May be due to missing lock nesting notation
locks held by syz.0.0/5319: 5, last CPU#0:
#0: ffff88804309ab70 (&f->f_pos_lock){+.+.}-{4:4}, at: fdget_pos+0x246/0x320 fs/file.c:1259
#1: ffff888012f2a460 (sb_writers#11){.+.+}-{0:0}, at: file_start_write include/linux/fs.h:2753 [inline]
#1: ffff888012f2a460 (sb_writers#11){.+.+}-{0:0}, at: vfs_write+0x22b/0xba0 fs/read_write.c:683
#2: ffff888052400310 (&sb->s_type->i_mutex_key#23){+.+.}-{4:4}, at: xfs_ilock+0xee/0x380 fs/xfs/xfs_inode.c:149
#3: ffff888052400100 (&xfs_nondir_ilock_class){++++}-{4:4}, at: xfs_ilock_for_iomap fs/xfs/xfs_iomap.c:792 [inline]
#3: ffff888052400100 (&xfs_nondir_ilock_class){++++}-{4:4}, at: xfs_buffered_write_iomap_begin+0x674/0x2350 fs/xfs/xfs_iomap.c:1825
#4: ffff888012f2a0e8 (&type->s_umount_key#53){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:688 [inline]
#4: ffff888012f2a0e8 (&type->s_umount_key#53){.+.+}-{4:4}, at: super_cache_scan+0x94/0x500 fs/super.c:213
stack backtrace:
CPU: 0 UID: 0 PID: 5319 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
print_deadlock_bug+0x27a/0x290 kernel/locking/lockdep.c:3057
check_deadlock kernel/locking/lockdep.c:3109 [inline]
validate_chain kernel/locking/lockdep.c:3911 [inline]
__lock_acquire+0x261c/0x2e50 kernel/locking/lockdep.c:5254
lock_acquire+0x115/0x350 kernel/locking/lockdep.c:5908
down_write_nested+0x9d/0x210 kernel/locking/rwsem.c:1757
xfs_reclaim_inode fs/xfs/xfs_icache.c:1042 [inline]
xfs_icwalk_process_inode fs/xfs/xfs_icache.c:1734 [inline]
xfs_icwalk_ag+0x12b7/0x1980 fs/xfs/xfs_icache.c:1816
xfs_icwalk fs/xfs/xfs_icache.c:1864 [inline]
xfs_reclaim_inodes_nr+0x1e5/0x260 fs/xfs/xfs_icache.c:1108
super_cache_scan+0x476/0x500 fs/super.c:244
do_shrink_slab+0x6d0/0x10e0 mm/shrinker.c:443
shrink_slab+0xea4/0x1220 mm/shrinker.c:674
shrink_one+0x2a2/0x730 mm/vmscan.c:5119
shrink_many mm/vmscan.c:5180 [inline]
lru_gen_shrink_node mm/vmscan.c:5258 [inline]
shrink_node+0x35d0/0x3e30 mm/vmscan.c:6247
shrink_zones mm/vmscan.c:6503 [inline]
do_try_to_free_pages+0x6a3/0x1990 mm/vmscan.c:6565
try_to_free_pages+0x90a/0xe50 mm/vmscan.c:6804
__perform_reclaim mm/page_alloc.c:4451 [inline]
__alloc_pages_direct_reclaim+0x17d/0x360 mm/page_alloc.c:4478
__alloc_pages_slowpath+0x64a/0xec0 mm/page_alloc.c:4939
__alloc_frozen_pages_noprof+0x3f3/0x5a0 mm/page_alloc.c:5449
alloc_pages_mpol+0x21e/0x390 mm/mempolicy.c:2486
alloc_frozen_pages_noprof mm/mempolicy.c:2557 [inline]
alloc_pages_noprof+0xb1/0x2b0 mm/mempolicy.c:2577
stack_depot_save_flags+0x738/0x7f0 lib/stackdepot.c:685
kasan_save_stack mm/kasan/common.c:58 [inline]
kasan_save_track+0x4f/0x80 mm/kasan/common.c:78
poison_kmalloc_redzone mm/kasan/common.c:398 [inline]
__kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:415
kasan_kmalloc include/linux/kasan.h:263 [inline]
__kmalloc_cache_noprof+0x321/0x600 mm/slub.c:5563
_kmalloc_noprof include/linux/slab.h:991 [inline]
_kzalloc_noprof include/linux/slab.h:1312 [inline]
xfs_iext_alloc_node fs/xfs/libxfs/xfs_iext_tree.c:401 [inline]
xfs_iext_alloc_root fs/xfs/libxfs/xfs_iext_tree.c:593 [inline]
xfs_iext_insert_raw+0x22e/0x30a0 fs/xfs/libxfs/xfs_iext_tree.c:645
xfs_iext_insert+0x36/0x230 fs/xfs/libxfs/xfs_iext_tree.c:684
xfs_bmap_add_extent_hole_delay+0x4e8/0x850 fs/xfs/xfs_iomap.c:1438
xfs_bmapi_reserve_delalloc+0xc60/0xdb0 fs/xfs/xfs_iomap.c:1557
xfs_buffered_write_iomap_begin+0x18da/0x2350 fs/xfs/xfs_iomap.c:2073
iomap_iter_next include/linux/iomap.h:382 [inline]
xfs_buffered_write_iomap_next+0x52c/0x740 fs/xfs/xfs_iomap.c:2177
iomap_iter+0xe2/0xec0 fs/iomap/iter.c:122
iomap_file_buffered_write+0x249/0xb90 fs/iomap/buffered-io.c:1312
xfs_file_buffered_write+0x20a/0x870 fs/xfs/xfs_file.c:1064
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:61 [inline]
do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f767119e159
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 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 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f76720c1fe8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007f7671425fa0 RCX: 00007f767119e159
RDX: 000000000208e24b RSI: 0000200000000000 RDI: 0000000000000003
RBP: 00007f7671235024 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f7671426038 R14: 00007f7671425fa0 R15: 00007ffcd77ae0d8