]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
sheepdog: skip refresh on creation failure
authorHarry Wei <harryxiyou@gmail.com>
Fri, 8 Feb 2013 06:48:43 +0000 (14:48 +0800)
committerEric Blake <eblake@redhat.com>
Fri, 8 Feb 2013 21:38:52 +0000 (14:38 -0700)
Don't try to refresh Sheepdog volume if creating volume fails.

Signed-off-by: Harry Wei <harryxiyou@gmail.com>
src/storage/storage_backend_sheepdog.c

index cd18f331373d500039c5dc5e82ee308b37eeb868..218284d3171c9048d75ce02f55e10cb5ff0fc12a 100644 (file)
@@ -156,7 +156,7 @@ virStorageBackendSheepdogCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
                                    virStorageVolDefPtr vol)
 {
 
-    int ret;
+    int ret = -1;
 
     if (vol->target.encryption != NULL) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -167,10 +167,14 @@ virStorageBackendSheepdogCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
     virCommandPtr cmd = virCommandNewArgList(COLLIE, "vdi", "create", vol->name, NULL);
     virCommandAddArgFormat(cmd, "%llu", vol->capacity);
     virStorageBackendSheepdogAddHostArg(cmd, pool);
-    ret = virCommandRun(cmd, NULL);
+    if (virCommandRun(cmd, NULL) < 0)
+        goto cleanup;
 
-    virStorageBackendSheepdogRefreshVol(conn, pool, vol);
+    if (virStorageBackendSheepdogRefreshVol(conn, pool, vol) < 0)
+        goto cleanup;
 
+    ret = 0;
+cleanup:
     virCommandFree(cmd);
     return ret;
 }