Guest User

Untitled

a guest
May 29th, 2018
177
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ======================================================
  2. WARNING: possible circular locking dependency detected
  3. 4.17.0-rc4+ #10 Not tainted
  4. ------------------------------------------------------
  5. syz-executor7/31013 is trying to acquire lock:
  6. 000000004233cfd1 (&fs_info->cleaner_delayed_iput_mutex){+.+.}, at: btrfs_alloc_data_chunk_ondemand+0x401/0xb70 fs/btrfs/extent-tree.c:4364
  7.  
  8. but task is already holding lock:
  9. 000000001d8b0192 (sb_pagefaults){.+.+}, at: sb_start_pagefault include/linux/fs.h:1579 [inline]
  10. 000000001d8b0192 (sb_pagefaults){.+.+}, at: btrfs_page_mkwrite+0x187/0xc50 fs/btrfs/inode.c:8897
  11.  
  12. which lock already depends on the new lock.
  13.  
  14.  
  15. the existing dependency chain (in reverse order) is:
  16.  
  17. -> #5 (sb_pagefaults){.+.+}:
  18. percpu_down_read_preempt_disable include/linux/percpu-rwsem.h:36 [inline]
  19. percpu_down_read include/linux/percpu-rwsem.h:59 [inline]
  20. __sb_start_write+0x195/0x2a0 fs/super.c:1385
  21. sb_start_pagefault include/linux/fs.h:1579 [inline]
  22. btrfs_page_mkwrite+0x187/0xc50 fs/btrfs/inode.c:8897
  23. do_page_mkwrite+0xd9/0x270 mm/memory.c:2371
  24. do_shared_fault mm/memory.c:3697 [inline]
  25. do_fault mm/memory.c:3736 [inline]
  26. handle_pte_fault mm/memory.c:3963 [inline]
  27. __handle_mm_fault+0x17d7/0x2ab0 mm/memory.c:4087
  28. handle_mm_fault+0x3a4/0xa10 mm/memory.c:4124
  29. __do_page_fault+0x59e/0xca0 arch/x86/mm/fault.c:1399
  30. do_page_fault+0x78/0x4b0 arch/x86/mm/fault.c:1474
  31. page_fault+0x1e/0x30 arch/x86/entry/entry_64.S:1160
  32.  
  33. -> #4 (&mm->mmap_sem){++++}:
  34. down_read+0x40/0xb0 kernel/locking/rwsem.c:24
  35. get_user_pages_unlocked+0xcc/0x380 mm/gup.c:992
  36. get_user_pages_fast+0x15b/0x300 mm/gup.c:1830
  37. iov_iter_get_pages+0x235/0xde0 lib/iov_iter.c:1068
  38. dio_refill_pages fs/direct-io.c:170 [inline]
  39. dio_get_page fs/direct-io.c:214 [inline]
  40. do_direct_IO fs/direct-io.c:980 [inline]
  41. do_blockdev_direct_IO+0x339a/0x7850 fs/direct-io.c:1331
  42. __blockdev_direct_IO+0x9d/0xc6 fs/direct-io.c:1417
  43. btrfs_direct_IO+0x3b5/0xbb0 fs/btrfs/inode.c:8620
  44. generic_file_direct_write+0x1e6/0x440 mm/filemap.c:3042
  45. __btrfs_direct_write fs/btrfs/file.c:1813 [inline]
  46. btrfs_file_write_iter+0x75d/0x1652 fs/btrfs/file.c:1954
  47. call_write_iter include/linux/fs.h:1784 [inline]
  48. new_sync_write fs/read_write.c:474 [inline]
  49. __vfs_write+0x550/0x740 fs/read_write.c:487
  50. vfs_write+0x189/0x510 fs/read_write.c:549
  51. ksys_write+0xd4/0x1a0 fs/read_write.c:598
  52. __do_sys_write fs/read_write.c:610 [inline]
  53. __se_sys_write fs/read_write.c:607 [inline]
  54. __x64_sys_write+0x73/0xb0 fs/read_write.c:607
  55. do_syscall_64+0xda/0x560 arch/x86/entry/common.c:287
  56. entry_SYSCALL_64_after_hwframe+0x49/0xbe
  57.  
  58. -> #3 (&ei->dio_sem){++++}:
  59. down_write+0x3d/0xa0 kernel/locking/rwsem.c:70
  60. btrfs_log_changed_extents+0x11d/0x16e0 fs/btrfs/tree-log.c:4342
  61. btrfs_log_inode+0x1754/0x25e0 fs/btrfs/tree-log.c:5147
  62. btrfs_log_inode_parent+0x6f8/0x1e10 fs/btrfs/tree-log.c:5650
  63. btrfs_log_dentry_safe+0x6e/0x90 fs/btrfs/tree-log.c:5771
  64. btrfs_sync_file+0x800/0xce0 fs/btrfs/file.c:2197
  65. vfs_fsync_range+0x110/0x1f0 fs/sync.c:197
  66. generic_write_sync include/linux/fs.h:2689 [inline]
  67. btrfs_file_write_iter+0x10af/0x1652 fs/btrfs/file.c:1975
  68. call_write_iter include/linux/fs.h:1784 [inline]
  69. do_iter_readv_writev+0x3bd/0x5c0 fs/read_write.c:680
  70. do_iter_write+0x154/0x540 fs/read_write.c:959
  71. vfs_writev+0x158/0x2d0 fs/read_write.c:1004
  72. do_writev+0xe1/0x240 fs/read_write.c:1039
  73. __do_sys_writev fs/read_write.c:1112 [inline]
  74. __se_sys_writev fs/read_write.c:1109 [inline]
  75. __x64_sys_writev+0x75/0xb0 fs/read_write.c:1109
  76. do_syscall_64+0xda/0x560 arch/x86/entry/common.c:287
  77. entry_SYSCALL_64_after_hwframe+0x49/0xbe
  78.  
  79. -> #2 (&ei->log_mutex){+.+.}:
  80. __mutex_lock_common kernel/locking/mutex.c:756 [inline]
  81. __mutex_lock+0xf8/0x1330 kernel/locking/mutex.c:893
  82. mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908
  83. btrfs_record_unlink_dir+0x33/0x1e0 fs/btrfs/tree-log.c:5964
  84. btrfs_unlink+0xc5/0x280 fs/btrfs/inode.c:4220
  85. vfs_unlink+0x283/0x480 fs/namei.c:3970
  86. do_unlinkat+0x521/0x650 fs/namei.c:4033
  87. __do_sys_unlinkat fs/namei.c:4075 [inline]
  88. __se_sys_unlinkat fs/namei.c:4067 [inline]
  89. __x64_sys_unlinkat+0xa8/0x100 fs/namei.c:4067
  90. do_syscall_64+0xda/0x560 arch/x86/entry/common.c:287
  91. entry_SYSCALL_64_after_hwframe+0x49/0xbe
  92.  
  93. -> #1 (sb_internal){.+.+}:
  94. percpu_down_read_preempt_disable include/linux/percpu-rwsem.h:36 [inline]
  95. percpu_down_read include/linux/percpu-rwsem.h:59 [inline]
  96. __sb_start_write+0x195/0x2a0 fs/super.c:1385
  97. sb_start_intwrite include/linux/fs.h:1597 [inline]
  98. start_transaction+0x869/0xe10 fs/btrfs/transaction.c:525
  99. btrfs_join_transaction+0x24/0x30 fs/btrfs/transaction.c:640
  100. btrfs_evict_inode+0xd7a/0x12d0 fs/btrfs/inode.c:5377
  101. evict+0x2d7/0x620 fs/inode.c:557
  102. iput_final fs/inode.c:1519 [inline]
  103. iput+0x4e8/0x760 fs/inode.c:1545
  104. btrfs_run_delayed_iputs+0x146/0x220 fs/btrfs/inode.c:3289
  105. cleaner_kthread+0x389/0x4a0 fs/btrfs/disk-io.c:1742
  106. kthread+0x33c/0x400 kernel/kthread.c:238
  107. ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
  108.  
  109. -> #0 (&fs_info->cleaner_delayed_iput_mutex){+.+.}:
  110. lock_acquire+0x16b/0x420 kernel/locking/lockdep.c:3920
  111. __mutex_lock_common kernel/locking/mutex.c:756 [inline]
  112. __mutex_lock+0xf8/0x1330 kernel/locking/mutex.c:893
  113. mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908
  114. btrfs_alloc_data_chunk_ondemand+0x401/0xb70 fs/btrfs/extent-tree.c:4364
  115. btrfs_check_data_free_space+0xd8/0x160 fs/btrfs/extent-tree.c:4396
  116. btrfs_delalloc_reserve_space+0x2f/0xa0 fs/btrfs/extent-tree.c:6229
  117. btrfs_page_mkwrite+0x1cd/0xc50 fs/btrfs/inode.c:8910
  118. do_page_mkwrite+0xd9/0x270 mm/memory.c:2371
  119. wp_page_shared mm/memory.c:2667 [inline]
  120. do_wp_page+0x766/0xee0 mm/memory.c:2767
  121. handle_pte_fault mm/memory.c:3979 [inline]
  122. __handle_mm_fault+0x16fd/0x2ab0 mm/memory.c:4087
  123. handle_mm_fault+0x3a4/0xa10 mm/memory.c:4124
  124. __do_page_fault+0x59e/0xca0 arch/x86/mm/fault.c:1399
  125. do_page_fault+0x78/0x4b0 arch/x86/mm/fault.c:1474
  126. page_fault+0x1e/0x30 arch/x86/entry/entry_64.S:1160
  127.  
  128. other info that might help us debug this:
  129.  
  130. Chain exists of:
  131. &fs_info->cleaner_delayed_iput_mutex --> &mm->mmap_sem --> sb_pagefaults
  132.  
  133. Possible unsafe locking scenario:
  134.  
  135. CPU0 CPU1
  136. ---- ----
  137. lock(sb_pagefaults);
  138. lock(&mm->mmap_sem);
  139. lock(sb_pagefaults);
  140. lock(&fs_info->cleaner_delayed_iput_mutex);
  141.  
  142. *** DEADLOCK ***
  143.  
  144. 2 locks held by syz-executor7/31013:
  145. #0: 0000000052b3965a (&mm->mmap_sem){++++}, at: __do_page_fault+0x31e/0xca0 arch/x86/mm/fault.c:1328
  146. #1: 000000001d8b0192 (sb_pagefaults){.+.+}, at: sb_start_pagefault include/linux/fs.h:1579 [inline]
  147. #1: 000000001d8b0192 (sb_pagefaults){.+.+}, at: btrfs_page_mkwrite+0x187/0xc50 fs/btrfs/inode.c:8897
  148.  
  149. stack backtrace:
  150. CPU: 1 PID: 31013 Comm: syz-executor7 Not tainted 4.17.0-rc4+ #10
  151. Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
  152. Call Trace:
  153. __dump_stack lib/dump_stack.c:77 [inline]
  154. dump_stack+0x148/0x1b5 lib/dump_stack.c:113
  155. print_circular_bug.isra.39+0x2cd/0x2dc kernel/locking/lockdep.c:1223
  156. check_prev_add kernel/locking/lockdep.c:1863 [inline]
  157. check_prevs_add kernel/locking/lockdep.c:1976 [inline]
  158. validate_chain kernel/locking/lockdep.c:2417 [inline]
  159. __lock_acquire+0x2cd7/0x3850 kernel/locking/lockdep.c:3431
  160. lock_acquire+0x16b/0x420 kernel/locking/lockdep.c:3920
  161. __mutex_lock_common kernel/locking/mutex.c:756 [inline]
  162. __mutex_lock+0xf8/0x1330 kernel/locking/mutex.c:893
  163. mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908
  164. btrfs_alloc_data_chunk_ondemand+0x401/0xb70 fs/btrfs/extent-tree.c:4364
  165. btrfs_check_data_free_space+0xd8/0x160 fs/btrfs/extent-tree.c:4396
  166. btrfs_delalloc_reserve_space+0x2f/0xa0 fs/btrfs/extent-tree.c:6229
  167. btrfs_page_mkwrite+0x1cd/0xc50 fs/btrfs/inode.c:8910
  168. do_page_mkwrite+0xd9/0x270 mm/memory.c:2371
  169. wp_page_shared mm/memory.c:2667 [inline]
  170. do_wp_page+0x766/0xee0 mm/memory.c:2767
  171. handle_pte_fault mm/memory.c:3979 [inline]
  172. __handle_mm_fault+0x16fd/0x2ab0 mm/memory.c:4087
  173. handle_mm_fault+0x3a4/0xa10 mm/memory.c:4124
  174. __do_page_fault+0x59e/0xca0 arch/x86/mm/fault.c:1399
  175. do_page_fault+0x78/0x4b0 arch/x86/mm/fault.c:1474
  176. page_fault+0x1e/0x30 arch/x86/entry/entry_64.S:1160
  177. RIP: 0033:0x4081a0
  178. RSP: 002b:00007ffd5f515f50 EFLAGS: 00010283
  179. RAX: 0000001b2de20720 RBX: 0000000000000000 RCX: 0000000000000000
  180. RDX: 0000001b2de20724 RSI: ffffffffffffffff RDI: 0000000000000005
  181. RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000
  182. R10: 00007ffd5f515f90 R11: 0000000000000000 R12: 0000000000000000
  183. R13: 0000000000000002 R14: 000000000072bea0 R15: 000000000072bea0
RAW Paste Data