NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds ============================================ WARNING: possible recursive locking detected 4.19.211-syzkaller #0 Not tainted -------------------------------------------- syz-executor.5/22112 is trying to acquire lock: 00000000e41de388 (&nilfs_bmap_dat_lock_key){++++}, at: nilfs_bmap_lookup_at_level+0x7b/0x3e0 fs/nilfs2/bmap.c:68 but task is already holding lock: 00000000a9805b5c (&nilfs_bmap_dat_lock_key){++++}, at: nilfs_bmap_lookup_at_level+0x7b/0x3e0 fs/nilfs2/bmap.c:68 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&nilfs_bmap_dat_lock_key); lock(&nilfs_bmap_dat_lock_key); *** DEADLOCK *** May be due to missing lock nesting notation 3 locks held by syz-executor.5/22112: #0: 00000000339a801c (&type->s_umount_key#97/1){+.+.}, at: alloc_super fs/super.c:226 [inline] #0: 00000000339a801c (&type->s_umount_key#97/1){+.+.}, at: sget_userns+0x20b/0xcd0 fs/super.c:519 #1: 00000000cadce1ff (&dat_lock_key){.+.+}, at: __nilfs_read_inode fs/nilfs2/inode.c:482 [inline] #1: 00000000cadce1ff (&dat_lock_key){.+.+}, at: nilfs_iget+0x1cf/0x860 fs/nilfs2/inode.c:592 #2: 00000000a9805b5c (&nilfs_bmap_dat_lock_key){++++}, at: nilfs_bmap_lookup_at_level+0x7b/0x3e0 fs/nilfs2/bmap.c:68 stack backtrace: CPU: 1 PID: 22112 Comm: syz-executor.5 Not tainted 4.19.211-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x1fc/0x2ef lib/dump_stack.c:118 print_deadlock_bug kernel/locking/lockdep.c:1764 [inline] check_deadlock kernel/locking/lockdep.c:1808 [inline] validate_chain kernel/locking/lockdep.c:2404 [inline] __lock_acquire.cold+0x121/0x57e kernel/locking/lockdep.c:3416 lock_acquire+0x170/0x3c0 kernel/locking/lockdep.c:3908 down_read+0x36/0x80 kernel/locking/rwsem.c:24 nilfs_bmap_lookup_at_level+0x7b/0x3e0 fs/nilfs2/bmap.c:68 nilfs_bmap_lookup fs/nilfs2/bmap.h:170 [inline] nilfs_mdt_submit_block.constprop.0+0x1a5/0xaa0 fs/nilfs2/mdt.c:142 nilfs_mdt_read_block+0x96/0x3e0 fs/nilfs2/mdt.c:175 nilfs_mdt_get_block+0xe6/0xd40 fs/nilfs2/mdt.c:250 nilfs_palloc_get_block+0xc4/0x2b0 fs/nilfs2/alloc.c:216 nilfs_palloc_get_entry_block+0x17b/0x230 fs/nilfs2/alloc.c:318 nilfs_dat_translate+0x7e/0x480 fs/nilfs2/dat.c:391 nilfs_btnode_submit_block+0x217/0x830 fs/nilfs2/btnode.c:80 __nilfs_btree_get_block+0xca/0x680 fs/nilfs2/btree.c:478 nilfs_btree_do_lookup+0x3eb/0x7c0 fs/nilfs2/btree.c:567 nilfs_btree_lookup+0x47/0x110 fs/nilfs2/btree.c:684 nilfs_bmap_lookup_at_level+0xcd/0x3e0 fs/nilfs2/bmap.c:69 nilfs_bmap_lookup fs/nilfs2/bmap.h:170 [inline] nilfs_mdt_submit_block.constprop.0+0x1a5/0xaa0 fs/nilfs2/mdt.c:142 nilfs_mdt_read_block+0x96/0x3e0 fs/nilfs2/mdt.c:175 nilfs_mdt_get_block+0xe6/0xd40 fs/nilfs2/mdt.c:250 nilfs_palloc_get_block+0xc4/0x2b0 fs/nilfs2/alloc.c:216 nilfs_palloc_get_entry_block+0x17b/0x230 fs/nilfs2/alloc.c:318 nilfs_ifile_get_inode_block+0xbf/0x170 fs/nilfs2/ifile.c:143 __nilfs_read_inode fs/nilfs2/inode.c:483 [inline] nilfs_iget+0x204/0x860 fs/nilfs2/inode.c:592 nilfs_get_root_dentry+0x26/0x250 fs/nilfs2/super.c:908 nilfs_fill_super fs/nilfs2/super.c:1082 [inline] nilfs_mount+0xac8/0xe70 fs/nilfs2/super.c:1321 mount_fs+0xa3/0x310 fs/super.c:1261 vfs_kern_mount.part.0+0x68/0x470 fs/namespace.c:961 vfs_kern_mount fs/namespace.c:951 [inline] do_new_mount fs/namespace.c:2492 [inline] do_mount+0x115c/0x2f50 fs/namespace.c:2822 ksys_mount+0xcf/0x130 fs/namespace.c:3038 __do_sys_mount fs/namespace.c:3052 [inline] __se_sys_mount fs/namespace.c:3049 [inline] __x64_sys_mount+0xba/0x150 fs/namespace.c:3049 do_syscall_64+0xf9/0x620 arch/x86/entry/common.c:293 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x7fe665755ada Code: 48 c7 c2 b8 ff ff ff f7 d8 64 89 02 b8 ff ff ff ff eb d2 e8 b8 04 00 00 0f 1f 84 00 00 00 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fe6640c6f88 EFLAGS: 00000202 ORIG_RAX: 00000000000000a5 RAX: ffffffffffffffda RBX: 0000000020000200 RCX: 00007fe665755ada RDX: 00000000200000c0 RSI: 0000000020000100 RDI: 00007fe6640c6fe0 RBP: 00007fe6640c7020 R08: 00007fe6640c7020 R09: 00000000200000c0 R10: 0000000000000000 R11: 0000000000000202 R12: 00000000200000c0 R13: 0000000020000100 R14: 00007fe6640c6fe0 R15: 00000000200007c0 NILFS (loop5): error -2 reading inode: ino=2 NILFS (loop5): error -2 getting root inode NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): broken superblock, retrying with spare superblock (blocksize = 1024) NILFS (loop5): mounting unchecked fs NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): unable to fall back to spare super block NILFS (loop5): error -22 while searching super root NILFS (loop5): broken superblock, retrying with spare superblock (blocksize = 1024) NILFS (loop5): mounting unchecked fs NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): unable to fall back to spare super block NILFS (loop5): error -22 while searching super root NILFS (loop5): broken superblock, retrying with spare superblock (blocksize = 1024) NILFS (loop5): mounting unchecked fs NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): unable to fall back to spare super block NILFS (loop5): error -22 while searching super root attempt to access beyond end of device loop2: rw=2049, want=160, limit=127 attempt to access beyond end of device loop2: rw=1, want=152, limit=127 attempt to access beyond end of device loop2: rw=2049, want=160, limit=127 attempt to access beyond end of device loop2: rw=1, want=152, limit=127 NILFS error (device loop5): nilfs_check_page: bad entry in directory #2: rec_len is smaller than minimal - offset=16, inode=792633534417207298, rec_len=0, name_len=0 NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds Remounting filesystem read-only NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS error (device loop5): nilfs_check_page: bad entry in directory #2: rec_len is smaller than minimal - offset=16, inode=792633534417207298, rec_len=0, name_len=0 NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds Remounting filesystem read-only NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): trying rollback from an earlier position NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): error -22 while searching super root NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): trying rollback from an earlier position NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): error -22 while searching super root NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): trying rollback from an earlier position NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): error -22 while searching super root NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS error (device loop5): nilfs_check_page: bad entry in directory #2: rec_len is smaller than minimal - offset=16, inode=792633534417207298, rec_len=0, name_len=0 NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds Remounting filesystem read-only NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): broken superblock, retrying with spare superblock (blocksize = 1024) NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds attempt to access beyond end of device loop2: rw=1, want=144, limit=127 NILFS (loop5): broken superblock, retrying with spare superblock (blocksize = 1024) NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds attempt to access beyond end of device loop2: rw=1, want=144, limit=127 NILFS (loop5): broken superblock, retrying with spare superblock (blocksize = 1024) NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds attempt to access beyond end of device loop2: rw=1, want=144, limit=127 NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds attempt to access beyond end of device loop2: rw=1, want=144, limit=127 netlink: 24 bytes leftover after parsing attributes in process `syz-executor.0'. NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds netlink: 24 bytes leftover after parsing attributes in process `syz-executor.0'. netlink: 24 bytes leftover after parsing attributes in process `syz-executor.0'. NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds netlink: 24 bytes leftover after parsing attributes in process `syz-executor.0'. NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds netlink: 24 bytes leftover after parsing attributes in process `syz-executor.0'. NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS error (device loop5): nilfs_check_page: bad entry in directory #2: rec_len is smaller than minimal - offset=16, inode=792633534417207298, rec_len=0, name_len=0 attempt to access beyond end of device loop2: rw=1, want=144, limit=127 Remounting filesystem read-only NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds attempt to access beyond end of device loop2: rw=1, want=144, limit=127 NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds attempt to access beyond end of device loop2: rw=1, want=144, limit=127 NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds attempt to access beyond end of device loop2: rw=1, want=144, limit=127 NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds netlink: 24 bytes leftover after parsing attributes in process `syz-executor.0'. NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds netlink: 24 bytes leftover after parsing attributes in process `syz-executor.3'. attempt to access beyond end of device loop2: rw=1, want=144, limit=127 netlink: 24 bytes leftover after parsing attributes in process `syz-executor.0'. NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds netlink: 24 bytes leftover after parsing attributes in process `syz-executor.3'. attempt to access beyond end of device loop2: rw=1, want=144, limit=127 netlink: 24 bytes leftover after parsing attributes in process `syz-executor.0'. NILFS error (device loop3): nilfs_check_page: bad entry in directory #2: rec_len is smaller than minimal - offset=16, inode=792633534417207298, rec_len=0, name_len=0 NILFS (loop5): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds Remounting filesystem read-only attempt to access beyond end of device loop2: rw=1, want=144, limit=127 NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop5): trying rollback from an earlier position NILFS (loop5): invalid segment: Checksum error in segment payload NILFS (loop3): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds NILFS (loop5): error -22 while searching super root