hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/md/dm-table.c
....@@ -1221,21 +1221,12 @@
12211221 struct mapped_device *md;
12221222 };
12231223
1224
-struct dm_keyslot_evict_args {
1225
- const struct blk_crypto_key *key;
1226
- int err;
1227
-};
1228
-
12291224 static int dm_keyslot_evict_callback(struct dm_target *ti, struct dm_dev *dev,
12301225 sector_t start, sector_t len, void *data)
12311226 {
1232
- struct dm_keyslot_evict_args *args = data;
1233
- int err;
1227
+ const struct blk_crypto_key *key = data;
12341228
1235
- err = blk_crypto_evict_key(bdev_get_queue(dev->bdev), args->key);
1236
- if (!args->err)
1237
- args->err = err;
1238
- /* Always try to evict the key from all devices. */
1229
+ blk_crypto_evict_key(bdev_get_queue(dev->bdev), key);
12391230 return 0;
12401231 }
12411232
....@@ -1250,7 +1241,6 @@
12501241 struct dm_keyslot_manager,
12511242 ksm);
12521243 struct mapped_device *md = dksm->md;
1253
- struct dm_keyslot_evict_args args = { key };
12541244 struct dm_table *t;
12551245 int srcu_idx;
12561246 int i;
....@@ -1263,10 +1253,11 @@
12631253 ti = dm_table_get_target(t, i);
12641254 if (!ti->type->iterate_devices)
12651255 continue;
1266
- ti->type->iterate_devices(ti, dm_keyslot_evict_callback, &args);
1256
+ ti->type->iterate_devices(ti, dm_keyslot_evict_callback,
1257
+ (void *)key);
12671258 }
12681259 dm_put_live_table(md, srcu_idx);
1269
- return args.err;
1260
+ return 0;
12701261 }
12711262
12721263 struct dm_derive_raw_secret_args {