mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 21:34:54 +03:00
storage: Disallow wiping an extended disk partition
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
This commit is contained in:
parent
243bbcc5db
commit
84020f9a39
@ -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,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user