Re: Revert commit 310ca162d77

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed 20-03-19 16:16:01, Greg KH wrote:
> On Wed, Mar 20, 2019 at 04:12:31PM +0100, Greg KH wrote:
> > 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...
> 
> Nope, does not revert cleanly due to the other loop fixes I added after
> this one.
> 
> So either I back out _all_ of the loop patches, or we leave what we have
> now, or we add the proper fixes to get things working.  I'd like to have
> this all work properly, so why not just have me backport the needed
> fixes that are upstream?

Sure, that is another option. Be sure to include recent fixups:

40853d6fc619 "loop: do not print warn message if partition scan is
successful"
758a58d0bc67 "loop: set GENHD_FL_NO_PART_SCAN after blkdev_reread_part()"

otherwise you need commits:

b1ab5fa309e6 "block/loop: Don't grab "struct file" for vfs_getattr()
operation."
...
628bd8594709 "loop: Fix double mutex_unlock(&loop_ctl_mutex) in
loop_control_ioctl()"

to drivers/block/loop.c. It's just that my experience tells me that when
there were 15 original patches in the series and then 3 followup fixups,
the series is not usually worth the risk for something nobody hit besides
fuzzers...

								Honza
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux