Hello,
These two functions, virDrvStorageVolLookupByKey and
virDrvStorageVolLookupByPath should use virStoragePoolPtr as parameter
instead of virConnectPtr for some few reasons:
1) Should follow the standard virStorage*Ptr parameters like the rest of
storage related functions.
2) Functions now are able to access pool structure. This is particularly
important for the optimization of the PowerHypervisor
phypVolumeLookupByKey function.
Thanks,
--
Eduardo Otubo
Software Engineer
Linux Technology Center
IBM Systems & Technology Group
Mobile: +55 19 8135 0885
eotubo(a)linux.vnet.ibm.com
--
diff --git a/src/driver.h b/src/driver.h
index 0975b59..bb05306 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -798,10 +798,10 @@ typedef virStorageVolPtr
(*virDrvStorageVolLookupByName) (virStoragePoolPtr pool,
const char *name);
typedef virStorageVolPtr
- (*virDrvStorageVolLookupByKey) (virConnectPtr pool,
+ (*virDrvStorageVolLookupByKey) (virStoragePoolPtr pool,
const char *key);
typedef virStorageVolPtr
- (*virDrvStorageVolLookupByPath) (virConnectPtr pool,
+ (*virDrvStorageVolLookupByPath) (virStoragePoolPtr pool,
const char *path);
diff --git a/src/libvirt.c b/src/libvirt.c
index 9d42c76..c43ce9c 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -8418,11 +8418,12 @@ error:
* Returns a storage volume, or NULL if not found / error
*/
virStorageVolPtr
-virStorageVolLookupByKey(virConnectPtr conn,
+virStorageVolLookupByKey(virStoragePoolPtr pool,
const char *key)
{
- DEBUG("conn=%p, key=%s", conn, key);
+ DEBUG("pool=%p, key=%s", pool, key);
+ virConnectPtr conn = pool->conn;
virResetLastError();
if (!VIR_IS_CONNECT(conn)) {
@@ -8437,7 +8438,7 @@ virStorageVolLookupByKey(virConnectPtr conn,
if (conn->storageDriver && conn->storageDriver->volLookupByKey) {
virStorageVolPtr ret;
- ret = conn->storageDriver->volLookupByKey (conn, key);
+ ret = conn->storageDriver->volLookupByKey (pool, key);
if (!ret)
goto error;
return ret;
@@ -8461,11 +8462,12 @@ error:
* Returns a storage volume, or NULL if not found / error
*/
virStorageVolPtr
-virStorageVolLookupByPath(virConnectPtr conn,
+virStorageVolLookupByPath(virStoragePoolPtr pool,
const char *path)
{
- DEBUG("conn=%p, path=%s", conn, path);
+ DEBUG("pool=%p, path=%s", pool, path);
+ virConnectPtr conn = pool->conn;
virResetLastError();
if (!VIR_IS_CONNECT(conn)) {
@@ -8480,7 +8482,7 @@ virStorageVolLookupByPath(virConnectPtr conn,
if (conn->storageDriver && conn->storageDriver->volLookupByPath) {
virStorageVolPtr ret;
- ret = conn->storageDriver->volLookupByPath (conn, path);
+ ret = conn->storageDriver->volLookupByPath (pool, path);
if (!ret)
goto error;
return ret;
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 80977a3..12380f4 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -5559,9 +5559,10 @@ done:
}
static virStorageVolPtr
-remoteStorageVolLookupByKey (virConnectPtr conn,
+remoteStorageVolLookupByKey (virStoragePoolPtr pool,
const char *key)
{
+ virConnectPtr conn = pool->conn;
virStorageVolPtr vol = NULL;
remote_storage_vol_lookup_by_key_args args;
remote_storage_vol_lookup_by_key_ret ret;
@@ -5586,9 +5587,10 @@ done:
}
static virStorageVolPtr
-remoteStorageVolLookupByPath (virConnectPtr conn,
+remoteStorageVolLookupByPath (virStoragePoolPtr pool,
const char *path)
{
+ virConnectPtr conn = pool->conn;
virStorageVolPtr vol = NULL;
remote_storage_vol_lookup_by_path_args args;
remote_storage_vol_lookup_by_path_ret ret;
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index b148e39..25fe1d1 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -1168,8 +1168,9 @@ cleanup:
static virStorageVolPtr
-storageVolumeLookupByKey(virConnectPtr conn,
+storageVolumeLookupByKey(virStoragePoolPtr pool,
const char *key) {
+ virConnectPtr conn = pool->conn;
virStorageDriverStatePtr driver = conn->storagePrivateData;
unsigned int i;
virStorageVolPtr ret = NULL;
@@ -1199,8 +1200,9 @@ storageVolumeLookupByKey(virConnectPtr conn,
}
static virStorageVolPtr
-storageVolumeLookupByPath(virConnectPtr conn,
+storageVolumeLookupByPath(virStoragePoolPtr pool,
const char *path) {
+ virConnectPtr conn = pool->conn;
virStorageDriverStatePtr driver = conn->storagePrivateData;
unsigned int i;
virStorageVolPtr ret = NULL;
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 395c8c9..c65e4a0 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -4251,8 +4251,9 @@ cleanup:
static virStorageVolPtr
-testStorageVolumeLookupByKey(virConnectPtr conn,
+testStorageVolumeLookupByKey(virStoragePoolPtr pool,
const char *key) {
+ virConnectPtr conn = pool->conn;
testConnPtr privconn = conn->privateData;
unsigned int i;
virStorageVolPtr ret = NULL;
@@ -4285,8 +4286,9 @@ testStorageVolumeLookupByKey(virConnectPtr conn,
}
static virStorageVolPtr
-testStorageVolumeLookupByPath(virConnectPtr conn,
+testStorageVolumeLookupByPath(virStoragePoolPtr pool,
const char *path) {
+ virConnectPtr conn = pool->conn;
testConnPtr privconn = conn->privateData;
unsigned int i;
virStorageVolPtr ret = NULL;
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 6a9a2bf..ce665ef 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -7547,7 +7547,8 @@ static virStorageVolPtr
vboxStorageVolLookupByName(virStoragePoolPtr pool, const
return ret;
}
-static virStorageVolPtr vboxStorageVolLookupByKey(virConnectPtr conn,
const char *key) {
+static virStorageVolPtr vboxStorageVolLookupByKey(virStoragePoolPtr
pool, const char *key) {
+ virConnectPtr conn = pool->conn;
VBOX_OBJECT_CHECK(conn, virStorageVolPtr, NULL);
vboxIID *hddIID = NULL;
IHardDisk *hardDisk = NULL;
@@ -7616,7 +7617,8 @@ cleanup:
return ret;
}
-static virStorageVolPtr vboxStorageVolLookupByPath(virConnectPtr conn,
const char *path) {
+static virStorageVolPtr vboxStorageVolLookupByPath(virStoragePoolPtr
pool, const char *path) {
+ virConnectPtr conn = pool->conn;
VBOX_OBJECT_CHECK(conn, virStorageVolPtr, NULL);
PRUnichar *hddPathUtf16 = NULL;
IHardDisk *hardDisk = NULL;