This patch add the partition type (primary, extended, logical) in internal libvirt data structure. This is important when deciding what kind of partition should be created.
--- libvirt-0.6.4.org/src/storage_conf.h 2009-06-23 16:18:48.576828000 +0200 +++ libvirt-0.6.4/src/storage_conf.h 2009-06-23 16:37:19.497435000 +0200 @@ -74,6 +74,7 @@ struct _virStorageVolTarget { char *path; int format; virStoragePerms perms; + int type; /* only used by disk backend for partition type */ }; @@ -444,6 +445,12 @@ enum virStorageVolFormatDisk { }; VIR_ENUM_DECL(virStorageVolFormatDisk) - +enum virStorageVolTypeDisk { + VIR_STORAGE_VOL_DISK_TYPE_NONE = 0, + VIR_STORAGE_VOL_DISK_TYPE_PRIMARY, + VIR_STORAGE_VOL_DISK_TYPE_LOGICAL, + VIR_STORAGE_VOL_DISK_TYPE_EXTENDED, + VIR_STORAGE_VOL_DISK_TYPE_LAST, +}; #endif /* __VIR_STORAGE_CONF_H__ */ --- libvirt-0.6.4.org/src/storage_backend_disk.c 2009-06-23 16:18:48.595802000 +0200 +++ libvirt-0.6.4/src/storage_backend_disk.c 2009-06-23 16:43:35.653066000 +0200 @@ -158,6 +158,16 @@ virStorageBackendDiskMakeDataVol(virConn /* virStorageBackendUpdateVolInfo sets format incorrect for partitions */ vol->target.format = virStorageBackendDiskMapPartitionType(groups[6]); + /* set partition type */ + if(STREQ(groups[1], "normal")) + vol->target.type = VIR_STORAGE_VOL_DISK_TYPE_PRIMARY; + else if(STREQ(groups[1], "logical")) + vol->target.type = VIR_STORAGE_VOL_DISK_TYPE_LOGICAL; + else if(STREQ(groups[1], "extended")) + vol->target.type = VIR_STORAGE_VOL_DISK_TYPE_EXTENDED; + else + vol->target.type = VIR_STORAGE_VOL_DISK_TYPE_NONE; + vol->type = VIR_STORAGE_VOL_BLOCK; /* The above gets allocation wrong for
-- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list