From ad11ecd965be477ebecb49d4b32e15fa7ac0b3e8 Mon Sep 17 00:00:00 2001 From: Harry Wei Date: Fri, 8 Feb 2013 14:48:43 +0800 Subject: [PATCH] sheepdog: skip refresh on creation failure Don't try to refresh Sheepdog volume if creating volume fails. Signed-off-by: Harry Wei --- src/storage/storage_backend_sheepdog.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/storage/storage_backend_sheepdog.c b/src/storage/storage_backend_sheepdog.c index cd18f33137..218284d317 100644 --- a/src/storage/storage_backend_sheepdog.c +++ b/src/storage/storage_backend_sheepdog.c @@ -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; }