device team0 entered promiscuous mode device team_slave_0 entered promiscuous mode team0: Port device team_slave_1 added ====================================================== WARNING: possible circular locking dependency detected 4.14.295-syzkaller #0 Not tainted ------------------------------------------------------ syz-executor.0/11112 is trying to acquire lock: (&journal->j_mutex){+.+.}, at: [] reiserfs_mutex_lock_safe fs/reiserfs/reiserfs.h:816 [inline] (&journal->j_mutex){+.+.}, at: [] lock_journal fs/reiserfs/journal.c:537 [inline] (&journal->j_mutex){+.+.}, at: [] do_journal_begin_r+0x26b/0xde0 fs/reiserfs/journal.c:3054 but task is already holding lock: (sb_writers#14){.+.+}, at: [] sb_start_write include/linux/fs.h:1551 [inline] (sb_writers#14){.+.+}, at: [] mnt_want_write_file+0xfd/0x3b0 fs/namespace.c:497 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (sb_writers#14){.+.+}: percpu_down_read_preempt_disable include/linux/percpu-rwsem.h:36 [inline] percpu_down_read include/linux/percpu-rwsem.h:59 [inline] __sb_start_write+0x64/0x260 fs/super.c:1342 sb_start_write include/linux/fs.h:1551 [inline] mnt_want_write_file+0xfd/0x3b0 fs/namespace.c:497 reiserfs_ioctl+0x18e/0x8b0 fs/reiserfs/ioctl.c:110 vfs_ioctl fs/ioctl.c:46 [inline] file_ioctl fs/ioctl.c:500 [inline] do_vfs_ioctl+0x75a/0xff0 fs/ioctl.c:684 SYSC_ioctl fs/ioctl.c:701 [inline] SyS_ioctl+0x7f/0xb0 fs/ioctl.c:692 do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb -> #1 (&sbi->lock){+.+.}: __mutex_lock_common kernel/locking/mutex.c:756 [inline] __mutex_lock+0xc4/0x1310 kernel/locking/mutex.c:893 reiserfs_write_lock_nested+0x59/0xd0 fs/reiserfs/lock.c:78 reiserfs_mutex_lock_safe fs/reiserfs/reiserfs.h:817 [inline] lock_journal fs/reiserfs/journal.c:537 [inline] do_journal_begin_r+0x276/0xde0 fs/reiserfs/journal.c:3054 journal_begin+0x162/0x3d0 fs/reiserfs/journal.c:3262 reiserfs_fill_super+0x18f4/0x2990 fs/reiserfs/super.c:2117 mount_bdev+0x2b3/0x360 fs/super.c:1134 mount_fs+0x92/0x2a0 fs/super.c:1237 vfs_kern_mount.part.0+0x5b/0x470 fs/namespace.c:1046 vfs_kern_mount fs/namespace.c:1036 [inline] do_new_mount fs/namespace.c:2572 [inline] do_mount+0xe65/0x2a30 fs/namespace.c:2905 SYSC_mount fs/namespace.c:3121 [inline] SyS_mount+0xa8/0x120 fs/namespace.c:3098 do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb -> #0 (&journal->j_mutex){+.+.}: lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3998 __mutex_lock_common kernel/locking/mutex.c:756 [inline] __mutex_lock+0xc4/0x1310 kernel/locking/mutex.c:893 reiserfs_mutex_lock_safe fs/reiserfs/reiserfs.h:816 [inline] lock_journal fs/reiserfs/journal.c:537 [inline] do_journal_begin_r+0x26b/0xde0 fs/reiserfs/journal.c:3054 journal_begin+0x162/0x3d0 fs/reiserfs/journal.c:3262 reiserfs_dirty_inode+0xd9/0x200 fs/reiserfs/super.c:716 __mark_inode_dirty+0x11e/0xf40 fs/fs-writeback.c:2134 mark_inode_dirty include/linux/fs.h:2026 [inline] reiserfs_ioctl+0x6f6/0x8b0 fs/reiserfs/ioctl.c:118 vfs_ioctl fs/ioctl.c:46 [inline] file_ioctl fs/ioctl.c:500 [inline] do_vfs_ioctl+0x75a/0xff0 fs/ioctl.c:684 SYSC_ioctl fs/ioctl.c:701 [inline] SyS_ioctl+0x7f/0xb0 fs/ioctl.c:692 do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb other info that might help us debug this: Chain exists of: &journal->j_mutex --> &sbi->lock --> sb_writers#14 Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(sb_writers#14); lock(&sbi->lock); lock(sb_writers#14); lock(&journal->j_mutex); *** DEADLOCK *** 1 lock held by syz-executor.0/11112: #0: (sb_writers#14){.+.+}, at: [] sb_start_write include/linux/fs.h:1551 [inline] #0: (sb_writers#14){.+.+}, at: [] mnt_want_write_file+0xfd/0x3b0 fs/namespace.c:497 stack backtrace: CPU: 0 PID: 11112 Comm: syz-executor.0 Not tainted 4.14.295-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0x1b2/0x281 lib/dump_stack.c:58 print_circular_bug.constprop.0.cold+0x2d7/0x41e kernel/locking/lockdep.c:1258 check_prev_add kernel/locking/lockdep.c:1905 [inline] check_prevs_add kernel/locking/lockdep.c:2022 [inline] validate_chain kernel/locking/lockdep.c:2464 [inline] __lock_acquire+0x2e0e/0x3f20 kernel/locking/lockdep.c:3491 lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3998 __mutex_lock_common kernel/locking/mutex.c:756 [inline] __mutex_lock+0xc4/0x1310 kernel/locking/mutex.c:893 reiserfs_mutex_lock_safe fs/reiserfs/reiserfs.h:816 [inline] lock_journal fs/reiserfs/journal.c:537 [inline] do_journal_begin_r+0x26b/0xde0 fs/reiserfs/journal.c:3054 journal_begin+0x162/0x3d0 fs/reiserfs/journal.c:3262 reiserfs_dirty_inode+0xd9/0x200 fs/reiserfs/super.c:716 __mark_inode_dirty+0x11e/0xf40 fs/fs-writeback.c:2134 mark_inode_dirty include/linux/fs.h:2026 [inline] reiserfs_ioctl+0x6f6/0x8b0 fs/reiserfs/ioctl.c:118 vfs_ioctl fs/ioctl.c:46 [inline] file_ioctl fs/ioctl.c:500 [inline] do_vfs_ioctl+0x75a/0xff0 fs/ioctl.c:684 SYSC_ioctl fs/ioctl.c:701 [inline] SyS_ioctl+0x7f/0xb0 fs/ioctl.c:692 do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x46/0xbb RIP: 0033:0x7f3c4234f5f9 RSP: 002b:00007f3c40cc2168 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f3c4246ff80 RCX: 00007f3c4234f5f9 RDX: 0000000020000080 RSI: 0000000040087602 RDI: 0000000000000005 RBP: 00007f3c423aa7b0 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffd89d29bdf R14: 00007f3c40cc2300 R15: 0000000000022000 team0: Port device team_slave_1 removed device team0 left promiscuous mode device team_slave_0 left promiscuous mode REISERFS (device loop0): found reiserfs format "3.6" with non-standard journal REISERFS (device loop0): using ordered data mode reiserfs: using flush barriers REISERFS (device loop0): journal params: device loop0, size 512, journal first block 18, max trans len 256, max batch 225, max commit age 30, max trans age 30 REISERFS (device loop0): checking transaction log (loop0) REISERFS (device loop0): Using rupasov hash to sort names REISERFS (device loop0): Created .reiserfs_priv - reserved for xattr storage. REISERFS (device loop0): found reiserfs format "3.6" with non-standard journal REISERFS (device loop0): using ordered data mode reiserfs: using flush barriers REISERFS (device loop0): journal params: device loop0, size 512, journal first block 18, max trans len 256, max batch 225, max commit age 30, max trans age 30 8021q: adding VLAN 0 to HW filter on device team0 REISERFS (device loop0): checking transaction log (loop0) REISERFS (device loop0): Using rupasov hash to sort names REISERFS (device loop0): Created .reiserfs_priv - reserved for xattr storage. bond0: Enslaving team0 as an active interface with an up link bond0: Releasing backup interface team0 bridge0: port 3(team0) entered blocking state bridge0: port 3(team0) entered disabled state device team0 entered promiscuous mode device team_slave_0 entered promiscuous mode device team_slave_1 entered promiscuous mode syz-executor.4 (11346) used greatest stack depth: 24072 bytes left device team0 left promiscuous mode device team_slave_0 left promiscuous mode device team_slave_1 left promiscuous mode bridge0: port 3(team0) entered disabled state 8021q: adding VLAN 0 to HW filter on device team0 bond0: Enslaving team0 as an active interface with an up link bond0: Releasing backup interface team0 bridge0: port 3(team0) entered blocking state bridge0: port 3(team0) entered disabled state device team0 entered promiscuous mode device team_slave_0 entered promiscuous mode device team_slave_1 entered promiscuous mode syz-executor.4 (11436) used greatest stack depth: 23960 bytes left device team0 left promiscuous mode device team_slave_0 left promiscuous mode device team_slave_1 left promiscuous mode bridge0: port 3(team0) entered disabled state 8021q: adding VLAN 0 to HW filter on device team0 bond0: Enslaving team0 as an active interface with an up link bond0: Releasing backup interface team0 bridge0: port 3(team0) entered blocking state bridge0: port 3(team0) entered disabled state device team0 entered promiscuous mode device team_slave_0 entered promiscuous mode device team_slave_1 entered promiscuous mode device team0 left promiscuous mode device team_slave_0 left promiscuous mode device team_slave_1 left promiscuous mode bridge0: port 3(team0) entered disabled state 8021q: adding VLAN 0 to HW filter on device team0 bond0: Enslaving team0 as an active interface with an up link bond0: Releasing backup interface team0 bridge0: port 3(team0) entered blocking state bridge0: port 3(team0) entered disabled state device team0 entered promiscuous mode device team_slave_0 entered promiscuous mode device team_slave_1 entered promiscuous mode device team0 left promiscuous mode device team_slave_0 left promiscuous mode device team_slave_1 left promiscuous mode bridge0: port 3(team0) entered disabled state 8021q: adding VLAN 0 to HW filter on device team0 bond0: Enslaving team0 as an active interface with an up link bond0: Releasing backup interface team0 bridge0: port 3(team0) entered blocking state bridge0: port 3(team0) entered disabled state device team0 entered promiscuous mode device team_slave_0 entered promiscuous mode device team_slave_1 entered promiscuous mode syz-executor.4 (11560) used greatest stack depth: 23800 bytes left device team0 left promiscuous mode device team_slave_0 left promiscuous mode device team_slave_1 left promiscuous mode bridge0: port 3(team0) entered disabled state 8021q: adding VLAN 0 to HW filter on device team0 bond0: Enslaving team0 as an active interface with an up link bond0: Releasing backup interface team0 bridge0: port 3(team0) entered blocking state bridge0: port 3(team0) entered disabled state device team0 entered promiscuous mode device team_slave_0 entered promiscuous mode device team_slave_1 entered promiscuous mode device team0 left promiscuous mode device team_slave_0 left promiscuous mode device team_slave_1 left promiscuous mode bridge0: port 3(team0) entered disabled state L1TF CPU bug present and SMT on, data leak possible. See CVE-2018-3646 and https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/l1tf.html for details. 8021q: adding VLAN 0 to HW filter on device team0 bond0: Enslaving team0 as an active interface with an up link bond0: Releasing backup interface team0 bridge0: port 3(team0) entered blocking state bridge0: port 3(team0) entered disabled state device team0 entered promiscuous mode device team_slave_0 entered promiscuous mode device team_slave_1 entered promiscuous mode UDF-fs: error (device loop0): udf_read_tagged: read failed, block=256, location=256 UDF-fs: warning (device loop0): udf_fill_super: No fileset found FAT-fs (loop4): Invalid FSINFO signature: 0x00000000, 0x00000000 (sector = 1) UDF-fs: error (device loop0): udf_read_tagged: read failed, block=256, location=256 UDF-fs: warning (device loop0): udf_fill_super: No fileset found FAT-fs (loop4): Invalid FSINFO signature: 0x00000000, 0x00000000 (sector = 1) UDF-fs: error (device loop0): udf_read_tagged: read failed, block=256, location=256 UDF-fs: warning (device loop0): udf_fill_super: No fileset found FAT-fs (loop4): Invalid FSINFO signature: 0x00000000, 0x00000000 (sector = 1) UDF-fs: error (device loop0): udf_read_tagged: read failed, block=256, location=256 UDF-fs: warning (device loop0): udf_fill_super: No fileset found FAT-fs (loop4): Invalid FSINFO signature: 0x00000000, 0x00000000 (sector = 1) print_req_error: I/O error, dev loop0, sector 0 new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored print_req_error: I/O error, dev loop2, sector 0 print_req_error: I/O error, dev loop1, sector 0 new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored print_req_error: I/O error, dev loop1, sector 0 print_req_error: I/O error, dev loop5, sector 0 print_req_error: I/O error, dev loop4, sector 0 print_req_error: I/O error, dev loop2, sector 0 new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored new mount options do not match the existing superblock, will be ignored print_req_error: I/O error, dev loop2, sector 0 print_req_error: I/O error, dev loop4, sector 0 print_req_error: I/O error, dev loop0, sector 0 new mount options do not match the existing superblock, will be ignored libceph: connect [d::]:6789 error -101 libceph: mon0 [d::]:6789 connect error libceph: connect [d::]:6789 error -101 libceph: mon0 [d::]:6789 connect error ceph: No mds server is up or the cluster is laggy libceph: connect [d::]:6789 error -101 libceph: mon0 [d::]:6789 connect error ceph: No mds server is up or the cluster is laggy libceph: connect [d::]:6789 error -101 libceph: mon0 [d::]:6789 connect error ceph: No mds server is up or the cluster is laggy