[dm-devel] 3.15-rc4: circular locking dependency triggered by dm-multipath

Hannes Reinecke hare at suse.de
Mon May 26 12:44:32 UTC 2014


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;
  }

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare at 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)




More information about the dm-devel mailing list