[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