ntfs3(loop3): Failed to initialize $Extend/$Reparse.
======================================================
WARNING: possible circular locking dependency detected
syzkaller #0 Not tainted
------------------------------------------------------
syz.3.520/10674 is trying to acquire lock:
ffff8881250859d0 (&ni->file.run_lock#2){++++}-{4:4}, at: run_unpack_ex+0x7e5/0xba0

but task is already holding lock:
ffff88812186c270 (&wnd->rw_lock){++++}-{4:4}, at: run_unpack_ex+0x701/0xba0

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&wnd->rw_lock){++++}-{4:4}:
       lock_acquire+0x120/0x360
       down_write_nested+0x9d/0x200
       ntfs_look_for_free_space+0xd3/0x600
       attr_allocate_clusters+0x1c1/0x6d0
       attr_set_size+0x14a4/0x2c70
       ntfs_set_size+0x164/0x200
       ntfs_extend+0x1d9/0x970
       ntfs_setattr+0x2e8/0xbe0
       notify_change+0xb36/0xe40
       do_truncate+0x1a4/0x220
       vfs_truncate+0x493/0x520
       do_sys_truncate+0xdb/0x190
       __x64_sys_truncate+0x5b/0x70
       do_syscall_64+0xfa/0x3b0
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> #0 (&ni->file.run_lock#2){++++}-{4:4}:
       validate_chain+0xb9b/0x2140
       __lock_acquire+0xab9/0xd20
       lock_acquire+0x120/0x360
       down_read+0x46/0x2e0
       run_unpack_ex+0x7e5/0xba0
       ntfs_iget5+0x232b/0x37c0
       dir_search_u+0x1df/0x2c0
       ntfs_lookup+0xfb/0x1f0
       path_openat+0x1101/0x3830
       do_filp_open+0x1fa/0x410
       do_sys_openat2+0x121/0x1c0
       __x64_sys_openat+0x138/0x170
       do_syscall_64+0xfa/0x3b0
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&wnd->rw_lock);
                               lock(&ni->file.run_lock#2);
                               lock(&wnd->rw_lock);
  rlock(&ni->file.run_lock#2);

 *** DEADLOCK ***

4 locks held by syz.3.520/10674:
 #0: ffff88812186e428 (sb_writers#23){.+.+}-{0:0}, at: mnt_want_write+0x41/0x90
 #1: ffff888125085460 (&type->i_mutex_dir_key#16){++++}-{4:4}, at: path_openat+0x8da/0x3830
 #2: ffff8881250851c8 (&ni->ni_lock/6){+.+.}-{4:4}, at: ntfs_lookup+0xee/0x1f0
 #3: ffff88812186c270 (&wnd->rw_lock){++++}-{4:4}, at: run_unpack_ex+0x701/0xba0

stack backtrace:
CPU: 0 UID: 0 PID: 10674 Comm: syz.3.520 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250
 print_circular_bug+0x2ee/0x310
 check_noncircular+0x134/0x160
 validate_chain+0xb9b/0x2140
 __lock_acquire+0xab9/0xd20
 lock_acquire+0x120/0x360
 down_read+0x46/0x2e0
 run_unpack_ex+0x7e5/0xba0
 ntfs_iget5+0x232b/0x37c0
 dir_search_u+0x1df/0x2c0
 ntfs_lookup+0xfb/0x1f0
 path_openat+0x1101/0x3830
 do_filp_open+0x1fa/0x410
 do_sys_openat2+0x121/0x1c0
 __x64_sys_openat+0x138/0x170
 do_syscall_64+0xfa/0x3b0
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f0acb78eba9
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 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f0acc5cc038 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
RAX: ffffffffffffffda RBX: 00007f0acb9d5fa0 RCX: 00007f0acb78eba9
RDX: 0000000000143042 RSI: 0000200000000040 RDI: ffffffffffffff9c
RBP: 00007f0acb811e19 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f0acb9d6038 R14: 00007f0acb9d5fa0 R15: 00007fff60fd1468
 </TASK>
CIFS: No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3.1.1), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3.1.1 (or even SMB3 or SMB2.1) specify vers=1.0 on mount.
CIFS mount error: No usable UNC path provided in device string!

CIFS: VFS: CIFS mount error: No usable UNC path provided in device string!
