Skip to contentSkip to conversation

Patch "dm: mark request_queue dead before destroying the DM device" has been added to the 4.8-stable tree

PATCH [email protected] 1 participant 1 message Oct 26, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

dm: mark request_queue dead before destroying the DM device

to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
dm-mark-request_queue-dead-before-destroying-the-dm-device.patch
and it can be found in the queue-4.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 3b785fbcf81c3533772c52b717f77293099498d3 Mon Sep 17 00:00:00 2001

From: Bart Van Assche <[email protected]>
Date: Wed, 31 Aug 2016 15:17:49 -0700
Subject: dm: mark request_queue dead before destroying the DM device

From: Bart Van Assche <[email protected]>

commit 3b785fbcf81c3533772c52b717f77293099498d3 upstream.

This avoids that new requests are queued while __dm_destroy() is in progress.

---
 drivers/md/dm.c |    5 +++++
 1 file changed, 5 insertions(+)
drivers/md/dm.c +5 -0
@@ -1873,6 +1873,7 @@ EXPORT_SYMBOL_GPL(dm_device_name);
 
 static void __dm_destroy(struct mapped_device *md, bool wait)
 {
+	struct request_queue *q = dm_get_md_queue(md);
 	struct dm_table *map;
 	int srcu_idx;
 
@@ -1883,6 +1884,10 @@ static void __dm_destroy(struct mapped_d
 	set_bit(DMF_FREEING, &md->flags);
 	spin_unlock(&_minor_lock);
 
+	spin_lock_irq(q->queue_lock);
+	queue_flag_set(QUEUE_FLAG_DYING, q);
+	spin_unlock_irq(q->queue_lock);
+
 	if (dm_request_based(md) && md->kworker_task)
 		flush_kthread_worker(&md->kworker);
 

Patches currently in stable-queue which might be from [email protected] are

queue-4.8/ib-srp-fix-infinite-loop-when-fmr-sg.offset-0.patch queue-4.8/dm-rq-take-request_queue-lock-while-clearing-queue_flag_stopped.patch queue-4.8/ib-core-correctly-handle-rdma_rw_init_mrs-failure.patch queue-4.8/dm-mark-request_queue-dead-before-destroying-the-dm-device.patch queue-4.8/dm-mpath-check-if-path-s-request_queue-is-dying-in-activate_path.patch