diff options
| author | Dan Carpenter <dan.carpenter@linaro.org> | 2025-04-30 11:05:54 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-05-18 08:24:04 +0200 |
| commit | 38433aa31b4364ab5949c16fa34ea077074d8694 (patch) | |
| tree | cc80e1c11c3a62fc87e90f024a5af0e69482db4c /drivers/md | |
| parent | 9c2dd8954dad0430e83ee55b985ba55070e50cf7 (diff) | |
| download | linux-38433aa31b4364ab5949c16fa34ea077074d8694.tar.gz linux-38433aa31b4364ab5949c16fa34ea077074d8694.tar.bz2 linux-38433aa31b4364ab5949c16fa34ea077074d8694.zip | |
dm: add missing unlock on in dm_keyslot_evict()
commit 650266ac4c7230c89bcd1307acf5c9c92cfa85e2 upstream.
We need to call dm_put_live_table() even if dm_get_live_table() returns
NULL.
Fixes: 9355a9eb21a5 ("dm: support key eviction from keyslot managers of underlying devices")
Cc: stable@vger.kernel.org # v5.12+
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/md')
| -rw-r--r-- | drivers/md/dm-table.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index 319bd10548e9..7a33da2dd64b 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -1242,7 +1242,7 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile, t = dm_get_live_table(md, &srcu_idx); if (!t) - return 0; + goto put_live_table; for (unsigned int i = 0; i < t->num_targets; i++) { struct dm_target *ti = dm_table_get_target(t, i); @@ -1253,6 +1253,7 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile, (void *)key); } +put_live_table: dm_put_live_table(md, srcu_idx); return 0; } |
