Rather than expecting callers to pass a virConnectPtr into the
virDomainDiskTranslateSourcePool() method, just acquire a connection
to the storage driver when needed.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
src/conf/domain_conf.c | 10 +++++++---
src/conf/domain_conf.h | 3 +--
src/qemu/qemu_conf.c | 3 +--
src/qemu/qemu_conf.h | 3 +--
src/qemu/qemu_driver.c | 39 ++++++++++++++++-----------------------
src/qemu/qemu_hotplug.c | 2 +-
src/qemu/qemu_process.c | 4 ++--
7 files changed, 29 insertions(+), 35 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 4f50547580..613e34f8c4 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -29068,9 +29068,9 @@ virDomainDiskTranslateSourcePoolAuth(virDomainDiskDefPtr def,
int
-virDomainDiskTranslateSourcePool(virConnectPtr conn,
- virDomainDiskDefPtr def)
+virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def)
{
+ virConnectPtr conn = NULL;
virStoragePoolDefPtr pooldef = NULL;
virStoragePoolPtr pool = NULL;
virStorageVolPtr vol = NULL;
@@ -29084,9 +29084,12 @@ virDomainDiskTranslateSourcePool(virConnectPtr conn,
if (!def->src->srcpool)
return 0;
- if (!(pool = virStoragePoolLookupByName(conn, def->src->srcpool->pool)))
+ if (!(conn = virGetConnectStorage()))
return -1;
+ if (!(pool = virStoragePoolLookupByName(conn, def->src->srcpool->pool)))
+ goto cleanup;
+
if (virStoragePoolIsActive(pool) != 1) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("storage pool '%s' containing volume '%s' "
@@ -29230,6 +29233,7 @@ virDomainDiskTranslateSourcePool(virConnectPtr conn,
ret = 0;
cleanup:
+ virObjectUnref(conn);
virObjectUnref(pool);
virObjectUnref(vol);
VIR_FREE(poolxml);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 7b450ce8f1..8be08bc9b3 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -3514,8 +3514,7 @@ virDomainNetResolveActualType(virDomainNetDefPtr iface)
ATTRIBUTE_NONNULL(1);
-int virDomainDiskTranslateSourcePool(virConnectPtr conn,
- virDomainDiskDefPtr def);
+int virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def);
#endif /* __DOMAIN_CONF_H */
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 2fa96431fa..b1ee36efea 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1635,8 +1635,7 @@ int qemuDriverAllocateID(virQEMUDriverPtr driver)
int
-qemuTranslateSnapshotDiskSourcePool(virConnectPtr conn ATTRIBUTE_UNUSED,
- virDomainSnapshotDiskDefPtr def)
+qemuTranslateSnapshotDiskSourcePool(virDomainSnapshotDiskDefPtr def)
{
if (def->src->type != VIR_STORAGE_TYPE_VOLUME)
return 0;
diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
index 3f38a76c26..947e52dfe2 100644
--- a/src/qemu/qemu_conf.h
+++ b/src/qemu/qemu_conf.h
@@ -352,8 +352,7 @@ int qemuSetUnprivSGIO(virDomainDeviceDefPtr dev);
int qemuDriverAllocateID(virQEMUDriverPtr driver);
virDomainXMLOptionPtr virQEMUDriverCreateXMLConf(virQEMUDriverPtr driver);
-int qemuTranslateSnapshotDiskSourcePool(virConnectPtr conn,
- virDomainSnapshotDiskDefPtr def);
+int qemuTranslateSnapshotDiskSourcePool(virDomainSnapshotDiskDefPtr def);
char * qemuGetBaseHugepagePath(virHugeTLBFSPtr hugepage);
char * qemuGetDomainHugepagePath(const virDomainDef *def,
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 0aa0f05d3c..6eec6d282c 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7871,8 +7871,7 @@ qemuDomainDetachDeviceLive(virDomainObjPtr vm,
}
static int
-qemuDomainChangeDiskLive(virConnectPtr conn,
- virDomainObjPtr vm,
+qemuDomainChangeDiskLive(virDomainObjPtr vm,
virDomainDeviceDefPtr dev,
virQEMUDriverPtr driver,
bool force)
@@ -7881,7 +7880,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn,
virDomainDiskDefPtr orig_disk = NULL;
int ret = -1;
- if (virDomainDiskTranslateSourcePool(conn, disk) < 0)
+ if (virDomainDiskTranslateSourcePool(disk) < 0)
goto cleanup;
if (qemuDomainDetermineDiskChain(driver, vm, disk, false, true) < 0)
@@ -7932,8 +7931,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn,
}
static int
-qemuDomainUpdateDeviceLive(virConnectPtr conn,
- virDomainObjPtr vm,
+qemuDomainUpdateDeviceLive(virDomainObjPtr vm,
virDomainDeviceDefPtr dev,
virDomainPtr dom,
bool force)
@@ -7944,7 +7942,7 @@ qemuDomainUpdateDeviceLive(virConnectPtr conn,
switch ((virDomainDeviceType) dev->type) {
case VIR_DOMAIN_DEVICE_DISK:
qemuDomainObjCheckDiskTaint(driver, vm, dev->data.disk, NULL);
- ret = qemuDomainChangeDiskLive(conn, vm, dev, driver, force);
+ ret = qemuDomainChangeDiskLive(vm, dev, driver, force);
break;
case VIR_DOMAIN_DEVICE_GRAPHICS:
ret = qemuDomainChangeGraphics(driver, vm, dev->data.graphics);
@@ -7986,7 +7984,6 @@ qemuDomainUpdateDeviceLive(virConnectPtr conn,
static int
qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef,
virDomainDeviceDefPtr dev,
- virConnectPtr conn,
virCapsPtr caps,
unsigned int parse_flags,
virDomainXMLOptionPtr xmlopt)
@@ -8008,7 +8005,7 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef,
_("target %s already exists"), disk->dst);
return -1;
}
- if (virDomainDiskTranslateSourcePool(conn, disk) < 0)
+ if (virDomainDiskTranslateSourcePool(disk) < 0)
return -1;
if (qemuCheckDiskConfig(disk, NULL) < 0)
return -1;
@@ -8494,7 +8491,7 @@ qemuDomainAttachDeviceLiveAndConfig(virConnectPtr conn,
if (virDomainDefCompatibleDevice(vmdef, dev) < 0)
goto cleanup;
- if ((ret = qemuDomainAttachDeviceConfig(vmdef, dev, conn, caps,
+ if ((ret = qemuDomainAttachDeviceConfig(vmdef, dev, caps,
parse_flags,
driver->xmlopt)) < 0)
goto cleanup;
@@ -8654,7 +8651,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr dom,
if (virDomainDefCompatibleDevice(vm->def, dev_copy) < 0)
goto endjob;
- if ((ret = qemuDomainUpdateDeviceLive(dom->conn, vm, dev_copy, dom, force)) < 0)
+ if ((ret = qemuDomainUpdateDeviceLive(vm, dev_copy, dom, force)) < 0)
goto endjob;
/*
* update domain status forcibly because the domain status may be
@@ -14229,8 +14226,7 @@ qemuDomainSnapshotPrepareDiskExternalActive(virDomainSnapshotDiskDefPtr snapdisk
static int
-qemuDomainSnapshotPrepareDiskExternal(virConnectPtr conn,
- virDomainDiskDefPtr disk,
+qemuDomainSnapshotPrepareDiskExternal(virDomainDiskDefPtr disk,
virDomainSnapshotDiskDefPtr snapdisk,
bool active,
bool reuse)
@@ -14238,11 +14234,11 @@ qemuDomainSnapshotPrepareDiskExternal(virConnectPtr conn,
int ret = -1;
struct stat st;
- if (qemuTranslateSnapshotDiskSourcePool(conn, snapdisk) < 0)
+ if (qemuTranslateSnapshotDiskSourcePool(snapdisk) < 0)
return -1;
if (!active) {
- if (virDomainDiskTranslateSourcePool(conn, disk) < 0)
+ if (virDomainDiskTranslateSourcePool(disk) < 0)
return -1;
if (qemuDomainSnapshotPrepareDiskExternalInactive(snapdisk, disk) < 0)
@@ -14284,8 +14280,7 @@ qemuDomainSnapshotPrepareDiskExternal(virConnectPtr conn,
static int
-qemuDomainSnapshotPrepareDiskInternal(virConnectPtr conn,
- virDomainDiskDefPtr disk,
+qemuDomainSnapshotPrepareDiskInternal(virDomainDiskDefPtr disk,
bool active)
{
int actualType;
@@ -14294,7 +14289,7 @@ qemuDomainSnapshotPrepareDiskInternal(virConnectPtr conn,
if (active)
return 0;
- if (virDomainDiskTranslateSourcePool(conn, disk) < 0)
+ if (virDomainDiskTranslateSourcePool(disk) < 0)
return -1;
actualType = virStorageSourceGetActualType(disk->src);
@@ -14343,8 +14338,7 @@ qemuDomainSnapshotPrepareDiskInternal(virConnectPtr conn,
static int
-qemuDomainSnapshotPrepare(virConnectPtr conn,
- virDomainObjPtr vm,
+qemuDomainSnapshotPrepare(virDomainObjPtr vm,
virDomainSnapshotDefPtr def,
unsigned int *flags)
{
@@ -14385,7 +14379,7 @@ qemuDomainSnapshotPrepare(virConnectPtr conn,
goto cleanup;
}
- if (qemuDomainSnapshotPrepareDiskInternal(conn, dom_disk,
+ if (qemuDomainSnapshotPrepareDiskInternal(dom_disk,
active) < 0)
goto cleanup;
@@ -14414,7 +14408,7 @@ qemuDomainSnapshotPrepare(virConnectPtr conn,
goto cleanup;
}
- if (qemuDomainSnapshotPrepareDiskExternal(conn, dom_disk, disk,
+ if (qemuDomainSnapshotPrepareDiskExternal(dom_disk, disk,
active, reuse) < 0)
goto cleanup;
@@ -15062,7 +15056,6 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain,
const char *xmlDesc,
unsigned int flags)
{
- virConnectPtr conn = domain->conn;
virQEMUDriverPtr driver = domain->conn->privateData;
virDomainObjPtr vm = NULL;
char *xml = NULL;
@@ -15241,7 +15234,7 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain,
}
if (virDomainSnapshotAlignDisks(def, align_location,
align_match) < 0 ||
- qemuDomainSnapshotPrepare(conn, vm, def, &flags) < 0)
+ qemuDomainSnapshotPrepare(vm, def, &flags) < 0)
goto endjob;
}
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index c7bf25eeef..a2268be576 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -713,7 +713,7 @@ qemuDomainAttachDeviceDiskLive(virConnectPtr conn,
goto cleanup;
}
- if (virDomainDiskTranslateSourcePool(conn, disk) < 0)
+ if (virDomainDiskTranslateSourcePool(disk) < 0)
goto cleanup;
if (qemuAddSharedDevice(driver, dev, vm->def->name) < 0)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index d0a25cecb9..586d11bba3 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5603,7 +5603,7 @@ qemuProcessPrepareDomainStorage(virConnectPtr conn,
size_t idx = i - 1;
virDomainDiskDefPtr disk = vm->def->disks[idx];
- if (virDomainDiskTranslateSourcePool(conn, disk) < 0) {
+ if (virDomainDiskTranslateSourcePool(disk) < 0) {
if (qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boot) < 0)
return -1;
@@ -7362,7 +7362,7 @@ qemuProcessReconnect(void *opaque)
virDomainDiskDefPtr disk = obj->def->disks[i];
virDomainDeviceDef dev;
- if (virDomainDiskTranslateSourcePool(conn, disk) < 0)
+ if (virDomainDiskTranslateSourcePool(disk) < 0)
goto error;
/* backing chains need to be refreshed only if they could change */
--
2.14.3
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On 02/09/2018 12:24 PM, Daniel P. Berrangé wrote: > Rather than expecting callers to pass a virConnectPtr into the > virDomainDiskTranslateSourcePool() method, just acquire a connection > to the storage driver when needed. > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > src/conf/domain_conf.c | 10 +++++++--- > src/conf/domain_conf.h | 3 +-- > src/qemu/qemu_conf.c | 3 +-- > src/qemu/qemu_conf.h | 3 +-- > src/qemu/qemu_driver.c | 39 ++++++++++++++++----------------------- > src/qemu/qemu_hotplug.c | 2 +- > src/qemu/qemu_process.c | 4 ++-- > 7 files changed, 29 insertions(+), 35 deletions(-) > qemuxml2argvtest fails with this patch (turned on VIR_TEST_DEBUG=1) 171) QEMU XML-2-ARGV disk-source-pool ... libvirt: XML-RPC error : Failed to connect socket to '/run/user/1000/libvirt/libvirt-sock': No such file or directory libvirt: XML-RPC error : Failed to connect socket to '/run/user/1000/libvirt/libvirt-sock': No such file or directory FAILED 172) QEMU XML-2-ARGV disk-source-pool-mode ... libvirt: XML-RPC error : Failed to connect socket to '/run/user/1000/libvirt/libvirt-sock': No such file or directory libvirt: XML-RPC error : Failed to connect socket to '/run/user/1000/libvirt/libvirt-sock': No such file or directory FAILED ... 428) QEMU XML-2-ARGV luks-disks-source ... libvirt: XML-RPC error : Failed to connect socket to '/run/user/1000/libvirt/libvirt-sock': No such file or directory libvirt: XML-RPC error : Failed to connect socket to '/run/user/1000/libvirt/libvirt-sock': No such file or directory FAILED Turning on LIBVIRT_DEBUG=1 finds: 2018-02-13 17:16:05.206+0000: 24834: debug : virConnectOpenInternal:1033 : Split "storage:///session" to URI components: scheme storage server <null> user <null> port -1 path /session It seems the test driver will need some updating... I wonder if perhaps these were missed because you had disabled qemuxml2argvtest for a bit, but now that it's back... John > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index 4f50547580..613e34f8c4 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -29068,9 +29068,9 @@ virDomainDiskTranslateSourcePoolAuth(virDomainDiskDefPtr def, > > > int > -virDomainDiskTranslateSourcePool(virConnectPtr conn, > - virDomainDiskDefPtr def) > +virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def) > { > + virConnectPtr conn = NULL; > virStoragePoolDefPtr pooldef = NULL; > virStoragePoolPtr pool = NULL; > virStorageVolPtr vol = NULL; > @@ -29084,9 +29084,12 @@ virDomainDiskTranslateSourcePool(virConnectPtr conn, > if (!def->src->srcpool) > return 0; > > - if (!(pool = virStoragePoolLookupByName(conn, def->src->srcpool->pool))) > + if (!(conn = virGetConnectStorage())) > return -1; > > + if (!(pool = virStoragePoolLookupByName(conn, def->src->srcpool->pool))) > + goto cleanup; > + > if (virStoragePoolIsActive(pool) != 1) { > virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > _("storage pool '%s' containing volume '%s' " > @@ -29230,6 +29233,7 @@ virDomainDiskTranslateSourcePool(virConnectPtr conn, > > ret = 0; > cleanup: > + virObjectUnref(conn); > virObjectUnref(pool); > virObjectUnref(vol); > VIR_FREE(poolxml); > diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h > index 7b450ce8f1..8be08bc9b3 100644 > --- a/src/conf/domain_conf.h > +++ b/src/conf/domain_conf.h > @@ -3514,8 +3514,7 @@ virDomainNetResolveActualType(virDomainNetDefPtr iface) > ATTRIBUTE_NONNULL(1); > > > -int virDomainDiskTranslateSourcePool(virConnectPtr conn, > - virDomainDiskDefPtr def); > +int virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def); > > > #endif /* __DOMAIN_CONF_H */ > diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c > index 2fa96431fa..b1ee36efea 100644 > --- a/src/qemu/qemu_conf.c > +++ b/src/qemu/qemu_conf.c > @@ -1635,8 +1635,7 @@ int qemuDriverAllocateID(virQEMUDriverPtr driver) > > > int > -qemuTranslateSnapshotDiskSourcePool(virConnectPtr conn ATTRIBUTE_UNUSED, > - virDomainSnapshotDiskDefPtr def) > +qemuTranslateSnapshotDiskSourcePool(virDomainSnapshotDiskDefPtr def) > { > if (def->src->type != VIR_STORAGE_TYPE_VOLUME) > return 0; > diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h > index 3f38a76c26..947e52dfe2 100644 > --- a/src/qemu/qemu_conf.h > +++ b/src/qemu/qemu_conf.h > @@ -352,8 +352,7 @@ int qemuSetUnprivSGIO(virDomainDeviceDefPtr dev); > int qemuDriverAllocateID(virQEMUDriverPtr driver); > virDomainXMLOptionPtr virQEMUDriverCreateXMLConf(virQEMUDriverPtr driver); > > -int qemuTranslateSnapshotDiskSourcePool(virConnectPtr conn, > - virDomainSnapshotDiskDefPtr def); > +int qemuTranslateSnapshotDiskSourcePool(virDomainSnapshotDiskDefPtr def); > > char * qemuGetBaseHugepagePath(virHugeTLBFSPtr hugepage); > char * qemuGetDomainHugepagePath(const virDomainDef *def, > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index 0aa0f05d3c..6eec6d282c 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -7871,8 +7871,7 @@ qemuDomainDetachDeviceLive(virDomainObjPtr vm, > } > > static int > -qemuDomainChangeDiskLive(virConnectPtr conn, > - virDomainObjPtr vm, > +qemuDomainChangeDiskLive(virDomainObjPtr vm, > virDomainDeviceDefPtr dev, > virQEMUDriverPtr driver, > bool force) > @@ -7881,7 +7880,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn, > virDomainDiskDefPtr orig_disk = NULL; > int ret = -1; > > - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) > + if (virDomainDiskTranslateSourcePool(disk) < 0) > goto cleanup; > > if (qemuDomainDetermineDiskChain(driver, vm, disk, false, true) < 0) > @@ -7932,8 +7931,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn, > } > > static int > -qemuDomainUpdateDeviceLive(virConnectPtr conn, > - virDomainObjPtr vm, > +qemuDomainUpdateDeviceLive(virDomainObjPtr vm, > virDomainDeviceDefPtr dev, > virDomainPtr dom, > bool force) > @@ -7944,7 +7942,7 @@ qemuDomainUpdateDeviceLive(virConnectPtr conn, > switch ((virDomainDeviceType) dev->type) { > case VIR_DOMAIN_DEVICE_DISK: > qemuDomainObjCheckDiskTaint(driver, vm, dev->data.disk, NULL); > - ret = qemuDomainChangeDiskLive(conn, vm, dev, driver, force); > + ret = qemuDomainChangeDiskLive(vm, dev, driver, force); > break; > case VIR_DOMAIN_DEVICE_GRAPHICS: > ret = qemuDomainChangeGraphics(driver, vm, dev->data.graphics); > @@ -7986,7 +7984,6 @@ qemuDomainUpdateDeviceLive(virConnectPtr conn, > static int > qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef, > virDomainDeviceDefPtr dev, > - virConnectPtr conn, > virCapsPtr caps, > unsigned int parse_flags, > virDomainXMLOptionPtr xmlopt) > @@ -8008,7 +8005,7 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef, > _("target %s already exists"), disk->dst); > return -1; > } > - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) > + if (virDomainDiskTranslateSourcePool(disk) < 0) > return -1; > if (qemuCheckDiskConfig(disk, NULL) < 0) > return -1; > @@ -8494,7 +8491,7 @@ qemuDomainAttachDeviceLiveAndConfig(virConnectPtr conn, > > if (virDomainDefCompatibleDevice(vmdef, dev) < 0) > goto cleanup; > - if ((ret = qemuDomainAttachDeviceConfig(vmdef, dev, conn, caps, > + if ((ret = qemuDomainAttachDeviceConfig(vmdef, dev, caps, > parse_flags, > driver->xmlopt)) < 0) > goto cleanup; > @@ -8654,7 +8651,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr dom, > if (virDomainDefCompatibleDevice(vm->def, dev_copy) < 0) > goto endjob; > > - if ((ret = qemuDomainUpdateDeviceLive(dom->conn, vm, dev_copy, dom, force)) < 0) > + if ((ret = qemuDomainUpdateDeviceLive(vm, dev_copy, dom, force)) < 0) > goto endjob; > /* > * update domain status forcibly because the domain status may be > @@ -14229,8 +14226,7 @@ qemuDomainSnapshotPrepareDiskExternalActive(virDomainSnapshotDiskDefPtr snapdisk > > > static int > -qemuDomainSnapshotPrepareDiskExternal(virConnectPtr conn, > - virDomainDiskDefPtr disk, > +qemuDomainSnapshotPrepareDiskExternal(virDomainDiskDefPtr disk, > virDomainSnapshotDiskDefPtr snapdisk, > bool active, > bool reuse) > @@ -14238,11 +14234,11 @@ qemuDomainSnapshotPrepareDiskExternal(virConnectPtr conn, > int ret = -1; > struct stat st; > > - if (qemuTranslateSnapshotDiskSourcePool(conn, snapdisk) < 0) > + if (qemuTranslateSnapshotDiskSourcePool(snapdisk) < 0) > return -1; > > if (!active) { > - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) > + if (virDomainDiskTranslateSourcePool(disk) < 0) > return -1; > > if (qemuDomainSnapshotPrepareDiskExternalInactive(snapdisk, disk) < 0) > @@ -14284,8 +14280,7 @@ qemuDomainSnapshotPrepareDiskExternal(virConnectPtr conn, > > > static int > -qemuDomainSnapshotPrepareDiskInternal(virConnectPtr conn, > - virDomainDiskDefPtr disk, > +qemuDomainSnapshotPrepareDiskInternal(virDomainDiskDefPtr disk, > bool active) > { > int actualType; > @@ -14294,7 +14289,7 @@ qemuDomainSnapshotPrepareDiskInternal(virConnectPtr conn, > if (active) > return 0; > > - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) > + if (virDomainDiskTranslateSourcePool(disk) < 0) > return -1; > > actualType = virStorageSourceGetActualType(disk->src); > @@ -14343,8 +14338,7 @@ qemuDomainSnapshotPrepareDiskInternal(virConnectPtr conn, > > > static int > -qemuDomainSnapshotPrepare(virConnectPtr conn, > - virDomainObjPtr vm, > +qemuDomainSnapshotPrepare(virDomainObjPtr vm, > virDomainSnapshotDefPtr def, > unsigned int *flags) > { > @@ -14385,7 +14379,7 @@ qemuDomainSnapshotPrepare(virConnectPtr conn, > goto cleanup; > } > > - if (qemuDomainSnapshotPrepareDiskInternal(conn, dom_disk, > + if (qemuDomainSnapshotPrepareDiskInternal(dom_disk, > active) < 0) > goto cleanup; > > @@ -14414,7 +14408,7 @@ qemuDomainSnapshotPrepare(virConnectPtr conn, > goto cleanup; > } > > - if (qemuDomainSnapshotPrepareDiskExternal(conn, dom_disk, disk, > + if (qemuDomainSnapshotPrepareDiskExternal(dom_disk, disk, > active, reuse) < 0) > goto cleanup; > > @@ -15062,7 +15056,6 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain, > const char *xmlDesc, > unsigned int flags) > { > - virConnectPtr conn = domain->conn; > virQEMUDriverPtr driver = domain->conn->privateData; > virDomainObjPtr vm = NULL; > char *xml = NULL; > @@ -15241,7 +15234,7 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain, > } > if (virDomainSnapshotAlignDisks(def, align_location, > align_match) < 0 || > - qemuDomainSnapshotPrepare(conn, vm, def, &flags) < 0) > + qemuDomainSnapshotPrepare(vm, def, &flags) < 0) > goto endjob; > } > > diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c > index c7bf25eeef..a2268be576 100644 > --- a/src/qemu/qemu_hotplug.c > +++ b/src/qemu/qemu_hotplug.c > @@ -713,7 +713,7 @@ qemuDomainAttachDeviceDiskLive(virConnectPtr conn, > goto cleanup; > } > > - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) > + if (virDomainDiskTranslateSourcePool(disk) < 0) > goto cleanup; > > if (qemuAddSharedDevice(driver, dev, vm->def->name) < 0) > diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c > index d0a25cecb9..586d11bba3 100644 > --- a/src/qemu/qemu_process.c > +++ b/src/qemu/qemu_process.c > @@ -5603,7 +5603,7 @@ qemuProcessPrepareDomainStorage(virConnectPtr conn, > size_t idx = i - 1; > virDomainDiskDefPtr disk = vm->def->disks[idx]; > > - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) { > + if (virDomainDiskTranslateSourcePool(disk) < 0) { > if (qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boot) < 0) > return -1; > > @@ -7362,7 +7362,7 @@ qemuProcessReconnect(void *opaque) > virDomainDiskDefPtr disk = obj->def->disks[i]; > virDomainDeviceDef dev; > > - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) > + if (virDomainDiskTranslateSourcePool(disk) < 0) > goto error; > > /* backing chains need to be refreshed only if they could change */ > -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
On Tue, Feb 13, 2018 at 12:34:54PM -0500, John Ferlan wrote: > > > On 02/09/2018 12:24 PM, Daniel P. Berrangé wrote: > > Rather than expecting callers to pass a virConnectPtr into the > > virDomainDiskTranslateSourcePool() method, just acquire a connection > > to the storage driver when needed. > > > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > > --- > > src/conf/domain_conf.c | 10 +++++++--- > > src/conf/domain_conf.h | 3 +-- > > src/qemu/qemu_conf.c | 3 +-- > > src/qemu/qemu_conf.h | 3 +-- > > src/qemu/qemu_driver.c | 39 ++++++++++++++++----------------------- > > src/qemu/qemu_hotplug.c | 2 +- > > src/qemu/qemu_process.c | 4 ++-- > > 7 files changed, 29 insertions(+), 35 deletions(-) > > > > qemuxml2argvtest fails with this patch (turned on VIR_TEST_DEBUG=1) Yeah, I noticed this since posting and am working on a solution to stop us trying to open the real libvirtd connection. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2025 Red Hat, Inc.