Commit 4087a1ff authored by Mike Snitzer's avatar Mike Snitzer

dm rq: cope with DM device destruction while in dm_old_request_fn()

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.

Reported-by: artem@flashgrid.io
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org
parent d19a55cc
...@@ -779,6 +779,10 @@ static void dm_old_request_fn(struct request_queue *q) ...@@ -779,6 +779,10 @@ static void dm_old_request_fn(struct request_queue *q)
int srcu_idx; int srcu_idx;
struct dm_table *map = dm_get_live_table(md, &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); ti = dm_table_find_target(map, pos);
dm_put_live_table(md, srcu_idx); dm_put_live_table(md, srcu_idx);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment