Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ======================================================
- WARNING: possible circular locking dependency detected
- 4.17.0-rc4+ #10 Not tainted
- ------------------------------------------------------
- syz-executor7/31013 is trying to acquire lock:
- 000000004233cfd1 (&fs_info->cleaner_delayed_iput_mutex){+.+.}, at: btrfs_alloc_data_chunk_ondemand+0x401/0xb70 fs/btrfs/extent-tree.c:4364
- but task is already holding lock:
- 000000001d8b0192 (sb_pagefaults){.+.+}, at: sb_start_pagefault include/linux/fs.h:1579 [inline]
- 000000001d8b0192 (sb_pagefaults){.+.+}, at: btrfs_page_mkwrite+0x187/0xc50 fs/btrfs/inode.c:8897
- which lock already depends on the new lock.
- the existing dependency chain (in reverse order) is:
- -> #5 (sb_pagefaults){.+.+}:
- 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+0x195/0x2a0 fs/super.c:1385
- sb_start_pagefault include/linux/fs.h:1579 [inline]
- btrfs_page_mkwrite+0x187/0xc50 fs/btrfs/inode.c:8897
- do_page_mkwrite+0xd9/0x270 mm/memory.c:2371
- do_shared_fault mm/memory.c:3697 [inline]
- do_fault mm/memory.c:3736 [inline]
- handle_pte_fault mm/memory.c:3963 [inline]
- __handle_mm_fault+0x17d7/0x2ab0 mm/memory.c:4087
- handle_mm_fault+0x3a4/0xa10 mm/memory.c:4124
- __do_page_fault+0x59e/0xca0 arch/x86/mm/fault.c:1399
- do_page_fault+0x78/0x4b0 arch/x86/mm/fault.c:1474
- page_fault+0x1e/0x30 arch/x86/entry/entry_64.S:1160
- -> #4 (&mm->mmap_sem){++++}:
- down_read+0x40/0xb0 kernel/locking/rwsem.c:24
- get_user_pages_unlocked+0xcc/0x380 mm/gup.c:992
- get_user_pages_fast+0x15b/0x300 mm/gup.c:1830
- iov_iter_get_pages+0x235/0xde0 lib/iov_iter.c:1068
- dio_refill_pages fs/direct-io.c:170 [inline]
- dio_get_page fs/direct-io.c:214 [inline]
- do_direct_IO fs/direct-io.c:980 [inline]
- do_blockdev_direct_IO+0x339a/0x7850 fs/direct-io.c:1331
- __blockdev_direct_IO+0x9d/0xc6 fs/direct-io.c:1417
- btrfs_direct_IO+0x3b5/0xbb0 fs/btrfs/inode.c:8620
- generic_file_direct_write+0x1e6/0x440 mm/filemap.c:3042
- __btrfs_direct_write fs/btrfs/file.c:1813 [inline]
- btrfs_file_write_iter+0x75d/0x1652 fs/btrfs/file.c:1954
- call_write_iter include/linux/fs.h:1784 [inline]
- new_sync_write fs/read_write.c:474 [inline]
- __vfs_write+0x550/0x740 fs/read_write.c:487
- vfs_write+0x189/0x510 fs/read_write.c:549
- ksys_write+0xd4/0x1a0 fs/read_write.c:598
- __do_sys_write fs/read_write.c:610 [inline]
- __se_sys_write fs/read_write.c:607 [inline]
- __x64_sys_write+0x73/0xb0 fs/read_write.c:607
- do_syscall_64+0xda/0x560 arch/x86/entry/common.c:287
- entry_SYSCALL_64_after_hwframe+0x49/0xbe
- -> #3 (&ei->dio_sem){++++}:
- down_write+0x3d/0xa0 kernel/locking/rwsem.c:70
- btrfs_log_changed_extents+0x11d/0x16e0 fs/btrfs/tree-log.c:4342
- btrfs_log_inode+0x1754/0x25e0 fs/btrfs/tree-log.c:5147
- btrfs_log_inode_parent+0x6f8/0x1e10 fs/btrfs/tree-log.c:5650
- btrfs_log_dentry_safe+0x6e/0x90 fs/btrfs/tree-log.c:5771
- btrfs_sync_file+0x800/0xce0 fs/btrfs/file.c:2197
- vfs_fsync_range+0x110/0x1f0 fs/sync.c:197
- generic_write_sync include/linux/fs.h:2689 [inline]
- btrfs_file_write_iter+0x10af/0x1652 fs/btrfs/file.c:1975
- call_write_iter include/linux/fs.h:1784 [inline]
- do_iter_readv_writev+0x3bd/0x5c0 fs/read_write.c:680
- do_iter_write+0x154/0x540 fs/read_write.c:959
- vfs_writev+0x158/0x2d0 fs/read_write.c:1004
- do_writev+0xe1/0x240 fs/read_write.c:1039
- __do_sys_writev fs/read_write.c:1112 [inline]
- __se_sys_writev fs/read_write.c:1109 [inline]
- __x64_sys_writev+0x75/0xb0 fs/read_write.c:1109
- do_syscall_64+0xda/0x560 arch/x86/entry/common.c:287
- entry_SYSCALL_64_after_hwframe+0x49/0xbe
- -> #2 (&ei->log_mutex){+.+.}:
- __mutex_lock_common kernel/locking/mutex.c:756 [inline]
- __mutex_lock+0xf8/0x1330 kernel/locking/mutex.c:893
- mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908
- btrfs_record_unlink_dir+0x33/0x1e0 fs/btrfs/tree-log.c:5964
- btrfs_unlink+0xc5/0x280 fs/btrfs/inode.c:4220
- vfs_unlink+0x283/0x480 fs/namei.c:3970
- do_unlinkat+0x521/0x650 fs/namei.c:4033
- __do_sys_unlinkat fs/namei.c:4075 [inline]
- __se_sys_unlinkat fs/namei.c:4067 [inline]
- __x64_sys_unlinkat+0xa8/0x100 fs/namei.c:4067
- do_syscall_64+0xda/0x560 arch/x86/entry/common.c:287
- entry_SYSCALL_64_after_hwframe+0x49/0xbe
- -> #1 (sb_internal){.+.+}:
- 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+0x195/0x2a0 fs/super.c:1385
- sb_start_intwrite include/linux/fs.h:1597 [inline]
- start_transaction+0x869/0xe10 fs/btrfs/transaction.c:525
- btrfs_join_transaction+0x24/0x30 fs/btrfs/transaction.c:640
- btrfs_evict_inode+0xd7a/0x12d0 fs/btrfs/inode.c:5377
- evict+0x2d7/0x620 fs/inode.c:557
- iput_final fs/inode.c:1519 [inline]
- iput+0x4e8/0x760 fs/inode.c:1545
- btrfs_run_delayed_iputs+0x146/0x220 fs/btrfs/inode.c:3289
- cleaner_kthread+0x389/0x4a0 fs/btrfs/disk-io.c:1742
- kthread+0x33c/0x400 kernel/kthread.c:238
- ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
- -> #0 (&fs_info->cleaner_delayed_iput_mutex){+.+.}:
- lock_acquire+0x16b/0x420 kernel/locking/lockdep.c:3920
- __mutex_lock_common kernel/locking/mutex.c:756 [inline]
- __mutex_lock+0xf8/0x1330 kernel/locking/mutex.c:893
- mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908
- btrfs_alloc_data_chunk_ondemand+0x401/0xb70 fs/btrfs/extent-tree.c:4364
- btrfs_check_data_free_space+0xd8/0x160 fs/btrfs/extent-tree.c:4396
- btrfs_delalloc_reserve_space+0x2f/0xa0 fs/btrfs/extent-tree.c:6229
- btrfs_page_mkwrite+0x1cd/0xc50 fs/btrfs/inode.c:8910
- do_page_mkwrite+0xd9/0x270 mm/memory.c:2371
- wp_page_shared mm/memory.c:2667 [inline]
- do_wp_page+0x766/0xee0 mm/memory.c:2767
- handle_pte_fault mm/memory.c:3979 [inline]
- __handle_mm_fault+0x16fd/0x2ab0 mm/memory.c:4087
- handle_mm_fault+0x3a4/0xa10 mm/memory.c:4124
- __do_page_fault+0x59e/0xca0 arch/x86/mm/fault.c:1399
- do_page_fault+0x78/0x4b0 arch/x86/mm/fault.c:1474
- page_fault+0x1e/0x30 arch/x86/entry/entry_64.S:1160
- other info that might help us debug this:
- Chain exists of:
- &fs_info->cleaner_delayed_iput_mutex --> &mm->mmap_sem --> sb_pagefaults
- Possible unsafe locking scenario:
- CPU0 CPU1
- ---- ----
- lock(sb_pagefaults);
- lock(&mm->mmap_sem);
- lock(sb_pagefaults);
- lock(&fs_info->cleaner_delayed_iput_mutex);
- *** DEADLOCK ***
- 2 locks held by syz-executor7/31013:
- #0: 0000000052b3965a (&mm->mmap_sem){++++}, at: __do_page_fault+0x31e/0xca0 arch/x86/mm/fault.c:1328
- #1: 000000001d8b0192 (sb_pagefaults){.+.+}, at: sb_start_pagefault include/linux/fs.h:1579 [inline]
- #1: 000000001d8b0192 (sb_pagefaults){.+.+}, at: btrfs_page_mkwrite+0x187/0xc50 fs/btrfs/inode.c:8897
- stack backtrace:
- CPU: 1 PID: 31013 Comm: syz-executor7 Not tainted 4.17.0-rc4+ #10
- Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
- Call Trace:
- __dump_stack lib/dump_stack.c:77 [inline]
- dump_stack+0x148/0x1b5 lib/dump_stack.c:113
- print_circular_bug.isra.39+0x2cd/0x2dc kernel/locking/lockdep.c:1223
- check_prev_add kernel/locking/lockdep.c:1863 [inline]
- check_prevs_add kernel/locking/lockdep.c:1976 [inline]
- validate_chain kernel/locking/lockdep.c:2417 [inline]
- __lock_acquire+0x2cd7/0x3850 kernel/locking/lockdep.c:3431
- lock_acquire+0x16b/0x420 kernel/locking/lockdep.c:3920
- __mutex_lock_common kernel/locking/mutex.c:756 [inline]
- __mutex_lock+0xf8/0x1330 kernel/locking/mutex.c:893
- mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908
- btrfs_alloc_data_chunk_ondemand+0x401/0xb70 fs/btrfs/extent-tree.c:4364
- btrfs_check_data_free_space+0xd8/0x160 fs/btrfs/extent-tree.c:4396
- btrfs_delalloc_reserve_space+0x2f/0xa0 fs/btrfs/extent-tree.c:6229
- btrfs_page_mkwrite+0x1cd/0xc50 fs/btrfs/inode.c:8910
- do_page_mkwrite+0xd9/0x270 mm/memory.c:2371
- wp_page_shared mm/memory.c:2667 [inline]
- do_wp_page+0x766/0xee0 mm/memory.c:2767
- handle_pte_fault mm/memory.c:3979 [inline]
- __handle_mm_fault+0x16fd/0x2ab0 mm/memory.c:4087
- handle_mm_fault+0x3a4/0xa10 mm/memory.c:4124
- __do_page_fault+0x59e/0xca0 arch/x86/mm/fault.c:1399
- do_page_fault+0x78/0x4b0 arch/x86/mm/fault.c:1474
- page_fault+0x1e/0x30 arch/x86/entry/entry_64.S:1160
- RIP: 0033:0x4081a0
- RSP: 002b:00007ffd5f515f50 EFLAGS: 00010283
- RAX: 0000001b2de20720 RBX: 0000000000000000 RCX: 0000000000000000
- RDX: 0000001b2de20724 RSI: ffffffffffffffff RDI: 0000000000000005
- RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000
- R10: 00007ffd5f515f90 R11: 0000000000000000 R12: 0000000000000000
- R13: 0000000000000002 R14: 000000000072bea0 R15: 000000000072bea0
RAW Paste Data