Skip to contentSkip to conversation

Patch "dm rq: cope with DM device destruction while in dm_old_request_fn()" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Feb 10, 2017

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 rq: cope with DM device destruction while in dm_old_request_fn()

to the 4.9-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-rq-cope-with-dm-device-destruction-while-in-dm_old_request_fn.patch
and it can be found in the queue-4.9 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 4087a1fffe38106e10646606a27f10d40451862d Mon Sep 17 00:00:00 2001

From: Mike Snitzer <[email protected]>
Date: Wed, 25 Jan 2017 16:24:52 +0100
Subject: dm rq: cope with DM device destruction while in dm_old_request_fn()

From: Mike Snitzer <[email protected]>

commit 4087a1fffe38106e10646606a27f10d40451862d upstream.

Fixes a crash in dm_table_find_target() due to a NULL struct dm_table being passed from dm_old_request_fn() that races with DM device destruction.

---
 drivers/md/dm-rq.c |    4 ++++
 1 file changed, 4 insertions(+)
drivers/md/dm-rq.c +4 -0
@@ -804,6 +804,10 @@ static void dm_old_request_fn(struct req
 		int srcu_idx;
 		struct dm_table *map = dm_get_live_table(md, &srcu_idx);
 
+		if (unlikely(!map)) {
+			dm_put_live_table(md, srcu_idx);
+			return;
+		}
 		ti = dm_table_find_target(map, pos);
 		dm_put_live_table(md, srcu_idx);
 	}

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

queue-4.9/dm-rq-cope-with-dm-device-destruction-while-in-dm_old_request_fn.patch