On Wed, Mar 20, 2019 at 01:58:06PM +0100, Jan Kara wrote:
Hello,
commit 310ca162d77 "block/loop: Use global lock for ioctl() operation." has been pushed to multiple stable trees. This patch is a part of larger series that overhauls the locking inside loopback device upstream and for 4.4, 4.9, and 4.14 stable trees only this patch from the series is applied. Our testing now has shown [1] that the patch alone makes present deadlocks inside loopback driver more likely (the openqa test in our infrastructure didn't hit the deadlock before whereas with the new kernel it hits it reliably every time). So I would suggest we revert 310ca162d77 from 4.4, 4.9, and 4.14 kernels.
Ugh, ok.
Another option would be to backport other locking fixes for the loop device but honestly I don't think that's a stable material - never heard of real users hitting problems, only syzkaller could, and we are still fixing up some small glitches resulting from that rework...
I tried to backport a number of the loop fixes, and odds are I am the one that grabbed this. There are other loop locking fixes in the stable releases, I don't know if I can just revert this one, let me check...
And yes, I did get some loop bugreports from the Android kernel team as they are using loop devices in large numbers on the new Android release for something. So I think they have already backported a number of these fixes to their trees, which made me want to push these out to more people.
Also, given that syzbot has a reproducer for 310ca162d77, are we worst off if we revert it?
thanks,
greg k-h