[libvirt] [PATCH] storage: Disallow wiping an extended disk partition
Michal Privoznik
mprivozn at redhat.com
Mon Jun 15 10:12:40 UTC 2015
On 10.06.2015 00:19, John Ferlan wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1225694
>
> Check if the disk partition to be wiped is the extended partition, if
> so then disallow it. Do this via changing the wipeVol backend to check
> the volume before passing to the common virStorageBackendVolWipeLocal
>
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
> src/storage/storage_backend_disk.c | 20 +++++++++++++++++++-
> 1 file changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c
> index c4bd6fe..a283a86 100644
> --- a/src/storage/storage_backend_disk.c
> +++ b/src/storage/storage_backend_disk.c
> @@ -851,6 +851,24 @@ virStorageBackendDiskBuildVolFrom(virConnectPtr conn,
> }
>
>
> +static int
> +virStorageBackendDiskVolWipe(virConnectPtr conn,
> + virStoragePoolObjPtr pool,
> + virStorageVolDefPtr vol,
> + unsigned int algorithm,
> + unsigned int flags)
> +{
> + if (vol->source.partType != VIR_STORAGE_VOL_DISK_TYPE_EXTENDED)
> + return virStorageBackendVolWipeLocal(conn, pool, vol, algorithm, flags);
> +
> + /* Wiping an extended partition is not support */
> + virReportError(VIR_ERR_NO_SUPPORT,
> + _("cannot wipe extended partition '%s'"),
> + vol->target.path);
> + return -1;
> +}
> +
> +
> virStorageBackend virStorageBackendDisk = {
> .type = VIR_STORAGE_POOL_DISK,
>
> @@ -862,5 +880,5 @@ virStorageBackend virStorageBackendDisk = {
> .buildVolFrom = virStorageBackendDiskBuildVolFrom,
> .uploadVol = virStorageBackendVolUploadLocal,
> .downloadVol = virStorageBackendVolDownloadLocal,
> - .wipeVol = virStorageBackendVolWipeLocal,
> + .wipeVol = virStorageBackendDiskVolWipe,
> };
>
Correct, mangling partition table is not desired. BTW: couldn't
something similar happen with LVM?
ACK to this though.
Michal
More information about the libvir-list
mailing list