do_iter_write lockdep trace

From: Dave Jones
Date: Fri Jul 07 2017 - 11:46:45 EST


>From current master.

[ 296.457954] ============================================
[ 296.458081] WARNING: possible recursive locking detected
[ 296.458201] 4.12.0-think+ #7 Not tainted
[ 296.458291] --------------------------------------------
[ 296.458409] trinity-c31/1551 is trying to acquire lock:
[ 296.458556] (
[ 296.458603] sb_writers
[ 296.458656] #4
[ 296.458694] ){.+.+.+}
[ 296.458749] , at: [<ffffffff81267074>] do_iter_write+0x134/0x220
[ 296.458885]
but task is already holding lock:
[ 296.459020] (
[ 296.459059] sb_writers
[ 296.459111] #4
[ 296.459149] ){.+.+.+}
[ 296.459202] , at: [<ffffffff812679f6>] do_sendfile+0x366/0x3c0
[ 296.459333]
other info that might help us debug this:
[ 296.459485] Possible unsafe locking scenario:

[ 296.459631] CPU0
[ 296.459685] ----
[ 296.459739] lock(
[ 296.459785] sb_writers
[ 296.459840] #4
[ 296.459876] );
[ 296.459913] lock(
[ 296.459961] sb_writers
[ 296.460021] #4
[ 296.460060] );
[ 296.460097]
*** DEADLOCK ***

[ 296.460220] May be due to missing lock nesting notation

[ 296.460367] 1 lock held by trinity-c31/1551:
[ 296.460463] #0:
[ 296.460507] (
[ 296.460544] sb_writers
[ 296.460599] #4
[ 296.460637] ){.+.+.+}
[ 296.460689] , at: [<ffffffff812679f6>] do_sendfile+0x366/0x3c0
[ 296.460820]
stack backtrace:
[ 296.460916] CPU: 3 PID: 1551 Comm: trinity-c31 Not tainted 4.12.0-think+ #7
[ 296.461188] Call Trace:
[ 296.461246] dump_stack+0x68/0x9f
[ 296.461322] __lock_acquire+0x833/0x1360
[ 296.461412] ? iter_file_splice_write+0x8c/0x420
[ 296.461517] ? init_object+0x69/0xa0
[ 296.461599] lock_acquire+0xe7/0x1e0
[ 296.461680] ? lock_acquire+0xe7/0x1e0
[ 296.461765] ? do_iter_write+0x134/0x220
[ 296.461855] __sb_start_write+0xcb/0x1e0
[ 296.461944] ? do_iter_write+0x134/0x220
[ 296.462043] ? iter_file_splice_write+0x8c/0x420
[ 296.462148] do_iter_write+0x134/0x220
[ 296.462233] vfs_iter_write+0x19/0x30
[ 296.462317] iter_file_splice_write+0x28d/0x420
[ 296.462424] direct_splice_actor+0x36/0x40
[ 296.462517] splice_direct_to_actor+0xe5/0x220
[ 296.462618] ? generic_pipe_buf_nosteal+0x10/0x10
[ 296.462725] do_splice_direct+0x9e/0xd0
[ 296.462812] do_sendfile+0x1d7/0x3c0
[ 296.462893] SyS_sendfile64+0x73/0xe0
[ 296.462978] do_syscall_64+0x66/0x190
[ 296.463072] entry_SYSCALL64_slow_path+0x25/0x25
[ 296.463178] RIP: 0033:0x7fbe852001e9
[ 296.463260] RSP: 002b:00007ffe16f8b328 EFLAGS: 00000246
[ 296.470299] ORIG_RAX: 0000000000000028
[ 296.477309] RAX: ffffffffffffffda RBX: 0000000000000028 RCX: 00007fbe852001e9
[ 296.484450] RDX: 00007fbe85714000 RSI: 000000000000011c RDI: 000000000000011c
[ 296.491497] RBP: 00007ffe16f8b3d0 R08: 0000884b02130845 R09: fffffffffffffffd
[ 296.498503] R10: 0000000000001000 R11: 0000000000000246 R12: 0000000000000002
[ 296.505525] R13: 00007fbe857f7058 R14: 00007fbe858d7698 R15: 00007fbe857f7000