On 05/26/2014 02:44 PM, Hannes Reinecke wrote: > On 05/26/2014 02:29 PM, Hannes Reinecke wrote: >> On 05/26/2014 02:20 PM, Bart Van Assche wrote: >>> On 05/26/14 14:10, Hannes Reinecke wrote: >>>> Mike Snitzer had a patch in his device-mapper tree: >>>> >>>> dm mpath: fix lock order inconsistency in multipath_ioctl >>>> (2014-05-14 >>>> 16:12:17 -0400) >>>> >>>> I was sort of hoping that would address this issue. >>>> Can you check? >>> >>> Hello Hannes, >>> >>> Is it possible that that patch already got included in v3.15-rc6 and >>> hence that that patch was included in my test ? >>> >>> $ git log v3.15-rc5..v3.15-rc6 | grep 'dm mpath: fix lock order >>> inconsistency in multipath_ioctl' >>> dm mpath: fix lock order inconsistency in multipath_ioctl >>> dm mpath: fix lock order inconsistency in multipath_ioctl >>> >> Could be. >> >> Okay, I'll be cross-checking. >> > Can you check if this makes lockdep happy? > > diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c > index aa009e8..40b3036 100644 > --- a/drivers/md/dm-mpath.c > +++ b/drivers/md/dm-mpath.c > @@ -445,11 +445,11 @@ static int queue_if_no_path(struct multipath > *m, unsigned > queue_if_no_path, > else > m->saved_queue_if_no_path = queue_if_no_path; > m->queue_if_no_path = queue_if_no_path; > - if (!m->queue_if_no_path) > - dm_table_run_md_queue_async(m->ti->table); > - > spin_unlock_irqrestore(&m->lock, flags); > > + if (!queue_if_no_path) > + dm_table_run_md_queue_async(m->ti->table); > + > return 0; > } > Or, better still, try the attached patch. There's one more instance where lockdep might complain. Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)