1
0
Fork 0

dm: fix bug with RCU locking in dm_blk_report_zones

commit 8947833571 upstream.

The dm_get_live_table() function makes RCU read lock so
dm_put_live_table() must be called even if dm_table map is not found.

Fixes: e76239a374 ("block: add a report_zones method")
Cc: stable@vger.kernel.org
Signed-off-by: Sergei Shtepa <sergei.shtepa@veeam.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5.4-rM2-2.2.x-imx-squashed
Sergei Shtepa 2020-11-11 15:55:46 +03:00 committed by Greg Kroah-Hartman
parent 7eb514087c
commit 3b02d67064
1 changed files with 4 additions and 2 deletions

View File

@ -455,8 +455,10 @@ static int dm_blk_report_zones(struct gendisk *disk, sector_t sector,
return -EAGAIN;
map = dm_get_live_table(md, &srcu_idx);
if (!map)
return -EIO;
if (!map) {
ret = -EIO;
goto out;
}
tgt = dm_table_find_target(map, sector);
if (!tgt) {