.. | .. |
---|
1221 | 1221 | struct mapped_device *md; |
---|
1222 | 1222 | }; |
---|
1223 | 1223 | |
---|
1224 | | -struct dm_keyslot_evict_args { |
---|
1225 | | - const struct blk_crypto_key *key; |
---|
1226 | | - int err; |
---|
1227 | | -}; |
---|
1228 | | - |
---|
1229 | 1224 | static int dm_keyslot_evict_callback(struct dm_target *ti, struct dm_dev *dev, |
---|
1230 | 1225 | sector_t start, sector_t len, void *data) |
---|
1231 | 1226 | { |
---|
1232 | | - struct dm_keyslot_evict_args *args = data; |
---|
1233 | | - int err; |
---|
| 1227 | + const struct blk_crypto_key *key = data; |
---|
1234 | 1228 | |
---|
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); |
---|
1239 | 1230 | return 0; |
---|
1240 | 1231 | } |
---|
1241 | 1232 | |
---|
.. | .. |
---|
1250 | 1241 | struct dm_keyslot_manager, |
---|
1251 | 1242 | ksm); |
---|
1252 | 1243 | struct mapped_device *md = dksm->md; |
---|
1253 | | - struct dm_keyslot_evict_args args = { key }; |
---|
1254 | 1244 | struct dm_table *t; |
---|
1255 | 1245 | int srcu_idx; |
---|
1256 | 1246 | int i; |
---|
.. | .. |
---|
1263 | 1253 | ti = dm_table_get_target(t, i); |
---|
1264 | 1254 | if (!ti->type->iterate_devices) |
---|
1265 | 1255 | 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); |
---|
1267 | 1258 | } |
---|
1268 | 1259 | dm_put_live_table(md, srcu_idx); |
---|
1269 | | - return args.err; |
---|
| 1260 | + return 0; |
---|
1270 | 1261 | } |
---|
1271 | 1262 | |
---|
1272 | 1263 | struct dm_derive_raw_secret_args { |
---|