Hello, If I run blktests against kernel v4.18 all tests pass but if I run blktests against kernel v4.19-rc2 then recursive locking complaint shown below appears. So it looks like this is a regression. What I'm not sure about is whether this complaint is triggered by a change in the ext4 code or by another change? Thanks, Bart. +AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9 WARNING: possible circular locking dependency detected 4.19.0-rc2-dbg+- +ACM-1 Not tainted ------------------------------------------------------ kworker/1:2/189 is trying to acquire lock: 00000000fcf597b9 (+ACY-sb-+AD4-s+AF8-type-+AD4-i+AF8-mutex+AF8-key+ACM-16)+AHsAKw.+-.+AH0, at: +AF8AXw-generic+AF8-file+AF8-fsync+-0x6a/0xf0 but task is already holding lock: 000000008a4b0074 ((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+AHsAKw.+-.+AH0, at: process+AF8-one+AF8-work+-0x3f6/0xa70 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -+AD4 +ACM-2 ((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+AHsAKw.+-.+AH0: worker+AF8-thread+-0x65/0x5a0 kthread+-0x1c5/0x1f0 ret+AF8-from+AF8-fork+-0x24/0x30 -+AD4 +ACM-1 ((wq+AF8-completion)+ACI-dio/+ACU-s+ACI-sb-+AD4-s+AF8-id)+AHsAKw.+-.+AH0: drain+AF8-workqueue+-0xe5/0x210 destroy+AF8-workqueue+-0x1c/0x320 sb+AF8-init+AF8-dio+AF8-done+AF8-wq+-0x65/0x80 do+AF8-blockdev+AF8-direct+AF8-IO+-0x3b8/0x3d00 ext4+AF8-direct+AF8-IO+-0x5d9/0xbd0 generic+AF8-file+AF8-direct+AF8-write+-0x10f/0x210 +AF8AXw-generic+AF8-file+AF8-write+AF8-iter+-0x117/0x2a0 ext4+AF8-file+AF8-write+AF8-iter+-0x394/0x670 aio+AF8-write+-0x235/0x330 io+AF8-submit+AF8-one+-0x510/0xeb0 +AF8AXw-x64+AF8-sys+AF8-io+AF8-submit+-0x122/0x340 do+AF8-syscall+AF8-64+-0x6c/0x210 entry+AF8-SYSCALL+AF8-64+AF8-after+AF8-hwframe+-0x49/0xbe -+AD4 +ACM-0 (+ACY-sb-+AD4-s+AF8-type-+AD4-i+AF8-mutex+AF8-key+ACM-16)+AHsAKw.+-.+AH0: down+AF8-write+-0x39/0x70 +AF8AXw-generic+AF8-file+AF8-fsync+-0x6a/0xf0 ext4+AF8-sync+AF8-file+-0x3c4/0x770 dio+AF8-complete+-0x2f6/0x360 process+AF8-one+AF8-work+-0x4bc/0xa70 worker+AF8-thread+-0x65/0x5a0 kthread+-0x1c5/0x1f0 ret+AF8-from+AF8-fork+-0x24/0x30 other info that might help us debug this: Chain exists of: +ACY-sb-+AD4-s+AF8-type-+AD4-i+AF8-mutex+AF8-key+ACM-16 --+AD4 (wq+AF8-completion)+ACI-dio/+ACU-s+ACI-sb-+AD4-s+AF8-id --+AD4 (work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work) Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+ADs lock((wq+AF8-completion)+ACI-dio/+ACU-s+ACI-sb-+AD4-s+AF8-id)+ADs lock((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+ADs lock(+ACY-sb-+AD4-s+AF8-type-+AD4-i+AF8-mutex+AF8-key+ACM-16)+ADs +ACoAKgAq DEADLOCK +ACoAKgAq 2 locks held by kworker/1:2/189: +ACM-0: 00000000ae279ea2 ((wq+AF8-completion)+ACI-dio/+ACU-s+ACI-sb-+AD4-s+AF8-id)+AHsAKw.+-.+AH0, at: process+AF8-one+AF8-work+-0x3f6/0xa70 +ACM-1: 000000008a4b0074 ((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+AHsAKw.+-.+AH0, at: process+AF8-one+AF8-work+-0x3f6/0xa70 stack backtrace: CPU: 1 PID: 189 Comm: kworker/1:2 Not tainted 4.19.0-rc2-dbg+- +ACM-1 Hardware name: QEMU Standard PC (i440FX +- PIIX, 1996), BIOS 1.10.2-1 04/01/2014 Workqueue: dio/dm-0 dio+AF8-aio+AF8-complete+AF8-work Call Trace: dump+AF8-stack+-0x7c/0xbb print+AF8-circular+AF8-bug.isra.32+-0x1fc/0x209 +AF8AXw-lock+AF8-acquire+-0x1a54/0x1b20 lock+AF8-acquire+-0xbd/0x200 down+AF8-write+-0x39/0x70 +AF8AXw-generic+AF8-file+AF8-fsync+-0x6a/0xf0 ext4+AF8-sync+AF8-file+-0x3c4/0x770 dio+AF8-complete+-0x2f6/0x360 process+AF8-one+AF8-work+-0x4bc/0xa70 worker+AF8-thread+-0x65/0x5a0 kthread+-0x1c5/0x1f0 ret+AF8-from+AF8-fork+-0x24/0x30