]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Add virDomainDiskSetBlockIOTune
authorMartin Kletzander <mkletzan@redhat.com>
Mon, 30 Jan 2017 19:37:48 +0000 (20:37 +0100)
committerMartin Kletzander <mkletzan@redhat.com>
Tue, 31 Jan 2017 19:19:35 +0000 (20:19 +0100)
That function sets disk->blkdeviotune sensibly.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/libvirt_private.syms

index 877a0bf5c1484eea288c2ecdff76ac4560dcd7d4..c06b128ddcb459b0e8f1c73172fe466d5b6570d5 100644 (file)
@@ -25845,3 +25845,30 @@ virDomainDefVcpuOrderClear(virDomainDefPtr def)
     for (i = 0; i < def->maxvcpus; i++)
         def->vcpus[i]->order = 0;
 }
+
+
+/**
+ * virDomainDiskSetBlockIOTune:
+ * @disk: The disk to set block I/O tuning on
+ * @info: The BlockIoTuneInfo to be set on the @disk
+ *
+ * Set the block I/O tune settings from @info on the @disk, but error out early
+ * in case of any error.  That is to make sure nothing will fail half-way.
+ *
+ * Returns: 0 on success, -1 otherwise
+ */
+int
+virDomainDiskSetBlockIOTune(virDomainDiskDefPtr disk,
+                            virDomainBlockIoTuneInfo *info)
+{
+    char *tmp_group = NULL;
+
+    if (VIR_STRDUP(tmp_group, info->group_name) < 0)
+        return -1;
+
+    VIR_FREE(disk->blkdeviotune.group_name);
+    disk->blkdeviotune = *info;
+    VIR_STEAL_PTR(disk->blkdeviotune.group_name, tmp_group);
+
+    return 0;
+}
index 4d830c51d4f7edb72f1222d961fe3c5a444b5634..507ace8711748f18b9b7cb56881bd9bb35d3f26a 100644 (file)
@@ -3219,4 +3219,8 @@ bool
 virDomainDeviceInfoAddressIsEqual(const virDomainDeviceInfo *a,
                                   const virDomainDeviceInfo *b)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
+
+int virDomainDiskSetBlockIOTune(virDomainDiskDefPtr disk,
+                                virDomainBlockIoTuneInfo *info);
+
 #endif /* __DOMAIN_CONF_H */
index a2866a3a06f0c9ff7d100b6decfca30f04b3e2fa..8e994c7f062bd76c569a5d225ec1f6b030d4d1cb 100644 (file)
@@ -314,6 +314,7 @@ virDomainDiskMirrorStateTypeToString;
 virDomainDiskPathByName;
 virDomainDiskRemove;
 virDomainDiskRemoveByName;
+virDomainDiskSetBlockIOTune;
 virDomainDiskSetDriver;
 virDomainDiskSetFormat;
 virDomainDiskSetSource;