diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index 64d4d1d7d2..d20a109306 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -1310,7 +1310,9 @@ storageBackendCreateQemuImgSecretPath(virStoragePoolObjPtr pool, static int -storageBackendGenerateSecretData(virStorageVolDefPtr vol) +storageBackendGenerateSecretData(virStoragePoolObjPtr pool, + virStorageVolDefPtr vol, + char **secretPath) { virStorageEncryptionPtr enc = vol->target.encryption; @@ -1325,6 +1327,12 @@ storageBackendGenerateSecretData(virStorageVolDefPtr vol) return -1; } + if (vol->target.format == VIR_STORAGE_FILE_RAW && + enc->format == VIR_STORAGE_ENCRYPTION_FORMAT_LUKS) { + if (!(*secretPath = storageBackendCreateQemuImgSecretPath(pool, vol))) + return -1; + } + return 0; } @@ -1350,17 +1358,9 @@ storageBackendCreateQemuImg(virStoragePoolObjPtr pool, return -1; } - if (storageBackendGenerateSecretData(vol) < 0) + if (storageBackendGenerateSecretData(pool, vol, &secretPath) < 0) goto cleanup; - if (vol->target.format == VIR_STORAGE_FILE_RAW && - vol->target.encryption && - vol->target.encryption->format == VIR_STORAGE_ENCRYPTION_FORMAT_LUKS) { - if (!(secretPath = - storageBackendCreateQemuImgSecretPath(pool, vol))) - goto cleanup; - } - cmd = virStorageBackendCreateQemuImgCmdFromVol(pool, vol, inputvol, flags, create_tool, secretPath);