Process accounting resumed
======================================================
WARNING: possible circular locking dependency detected
6.2.0-rc7-next-20230210 #1 Not tainted
------------------------------------------------------
syz-executor.3/12091 is trying to acquire lock:
ffff88800fee2170 (&journal->j_barrier){+.+.}-{3:3}, at: jbd2_journal_lock_updates+0x162/0x310

but task is already holding lock:
ffff88800fee0b90 (&sbi->s_writepages_rwsem){++++}-{0:0}, at: ext4_change_inode_journal_flag+0x17f/0x550

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #3 (&sbi->s_writepages_rwsem){++++}-{0:0}:
       percpu_down_write+0x51/0x350
       ext4_ind_migrate+0x23b/0x840
       ext4_fileattr_set+0x1521/0x19f0
       vfs_fileattr_set+0x7a2/0xbd0
       do_vfs_ioctl+0xfc1/0x1690
       __x64_sys_ioctl+0x110/0x210
       do_syscall_64+0x3f/0x90
       entry_SYSCALL_64_after_hwframe+0x72/0xdc

-> #2 (&sb->s_type->i_mutex_key#6){++++}-{3:3}:
       down_read+0x3d/0x50
       ext4_bmap+0x52/0x470
       bmap+0xb0/0x130
       jbd2_journal_bmap+0xac/0x1d0
       jbd2_journal_flush+0x87f/0xc90
       __ext4_ioctl+0x9fd/0x4330
       __x64_sys_ioctl+0x19e/0x210
       do_syscall_64+0x3f/0x90
       entry_SYSCALL_64_after_hwframe+0x72/0xdc

-> #1 (&journal->j_checkpoint_mutex){+.+.}-{3:3}:
       mutex_lock_io_nested+0x149/0x1300
       jbd2_journal_flush+0x19e/0xc90
       __ext4_ioctl+0x9fd/0x4330
       __x64_sys_ioctl+0x19e/0x210
       do_syscall_64+0x3f/0x90
       entry_SYSCALL_64_after_hwframe+0x72/0xdc

-> #0 (&journal->j_barrier){+.+.}-{3:3}:
       __lock_acquire+0x2da7/0x63b0
       lock_acquire.part.0+0xec/0x320
       __mutex_lock+0x133/0x14a0
       jbd2_journal_lock_updates+0x162/0x310
       ext4_change_inode_journal_flag+0x187/0x550
       ext4_fileattr_set+0x14fa/0x19f0
       vfs_fileattr_set+0x7a2/0xbd0
       do_vfs_ioctl+0xfc1/0x1690
       __x64_sys_ioctl+0x110/0x210
       do_syscall_64+0x3f/0x90
       entry_SYSCALL_64_after_hwframe+0x72/0xdc

other info that might help us debug this:

Chain exists of:
  &journal->j_barrier --> &sb->s_type->i_mutex_key#6 --> &sbi->s_writepages_rwsem

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&sbi->s_writepages_rwsem);
                               lock(&sb->s_type->i_mutex_key#6);
                               lock(&sbi->s_writepages_rwsem);
  lock(&journal->j_barrier);

 *** DEADLOCK ***

4 locks held by syz-executor.3/12091:
 #0: ffff88800fed6438 (sb_writers#3){.+.+}-{0:0}, at: do_vfs_ioctl+0xf86/0x1690
 #1: ffff888040840df0 (&sb->s_type->i_mutex_key#6){++++}-{3:3}, at: vfs_fileattr_set+0x14c/0xbd0
 #2: ffff888040840f90 (mapping.invalidate_lock){++++}-{3:3}, at: ext4_change_inode_journal_flag+0x126/0x550
 #3: ffff88800fee0b90 (&sbi->s_writepages_rwsem){++++}-{0:0}, at: ext4_change_inode_journal_flag+0x17f/0x550

stack backtrace:
CPU: 1 PID: 12091 Comm: syz-executor.3 Not tainted 6.2.0-rc7-next-20230210 #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0x91/0xf0
 check_noncircular+0x263/0x2e0
 __lock_acquire+0x2da7/0x63b0
 lock_acquire.part.0+0xec/0x320
 __mutex_lock+0x133/0x14a0
 jbd2_journal_lock_updates+0x162/0x310
 ext4_change_inode_journal_flag+0x187/0x550
 ext4_fileattr_set+0x14fa/0x19f0
 vfs_fileattr_set+0x7a2/0xbd0
 do_vfs_ioctl+0xfc1/0x1690
 __x64_sys_ioctl+0x110/0x210
 do_syscall_64+0x3f/0x90
 entry_SYSCALL_64_after_hwframe+0x72/0xdc
RIP: 0033:0x7f899a33cb19
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 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 bc ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f89978b2188 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f899a44ff60 RCX: 00007f899a33cb19
RDX: 0000000020000040 RSI: 0000000040086602 RDI: 0000000000000003
RBP: 00007f899a396f6d R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007ffcb78af94f R14: 00007f89978b2300 R15: 0000000000022000
 </TASK>
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Process accounting resumed
Option '                                                                                                      ' to dns_resolver key: bad/missing value
Process accounting resumed
Process accounting resumed
Option '                                                                                                      ' to dns_resolver key: bad/missing value
Option '                                                                                                      ' to dns_resolver key: bad/missing value
Option '                                                                                                      ' to dns_resolver key: bad/missing value
syz-executor.4 (12454) used greatest stack depth: 22632 bytes left
syz-executor.3 (12493) used greatest stack depth: 22440 bytes left