diff options
| -rw-r--r-- | drivers/md/dm-ima.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/md/dm-ima.c b/drivers/md/dm-ima.c index f563c4381489..47af99c9b79c 100644 --- a/drivers/md/dm-ima.c +++ b/drivers/md/dm-ima.c @@ -373,6 +373,19 @@ void dm_ima_measure_on_device_resume(struct mapped_device *md, bool swap, kfree(md->ima.active_table.device_metadata); md->ima.active_table = context->table; memset(&context->table, 0, sizeof(context->table)); + if (md->ima.active_table.device_metadata) { + /* + * A rename could have happened while the swap was + * going on. In that case, the saved table info would + * still have the old name. Update the metadata to be + * sure that it has the current name + */ + struct dm_ima_device_table_metadata *table = &md->ima.active_table; + fix_context_strings(context); + dm_ima_copy_device_data(md, table->device_metadata, + context, table->num_targets); + table->device_metadata_len = strlen(table->device_metadata); + } } if (md->ima.active_table.device_metadata) { |
