Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > ebe084c140192657f9094e135a84202c > files > 127

libvirt-0.8.2-29.el5.src.rpm

From fb305cd58d1568c3521d717c0661af0af8810d40 Mon Sep 17 00:00:00 2001
Message-Id: <fb305cd58d1568c3521d717c0661af0af8810d40.1283420933.git.jdenemar@redhat.com>
From: Daniel Berrange <berrange@redhat.com>
Date: Mon, 9 Aug 2010 14:16:04 +0200
Subject: [PATCH] remote: Fix incorrect use of private data field

NodeDeviceCreateXML and NodeDeviceDestroy methods added for NPIV were
using the wrong privateData field for the remote driver. This doesn't
impact KVM, since the remote driver handles everything, thus
privateData == devMonPrivateData. It does impact Xen though, because
the remote driver only handles a subset of methods and thus
privateData != devMonPrivateData.
(cherry picked from commit 9f45fabda2133bd669866e9c7a8946ffdac0bce1)
---
 src/remote/remote_driver.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 7052bf1..96cdb23 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -6162,6 +6162,8 @@ remoteNodeDeviceDettach (virNodeDevicePtr dev)
 {
     int rv = -1;
     remote_node_device_dettach_args args;
+    /* This method is unusual in that it uses the HV driver, not the devMon driver
+     * hence its use of privateData, instead of devMonPrivateData */
     struct private_data *priv = dev->conn->privateData;
 
     remoteDriverLock(priv);
@@ -6185,6 +6187,8 @@ remoteNodeDeviceReAttach (virNodeDevicePtr dev)
 {
     int rv = -1;
     remote_node_device_re_attach_args args;
+    /* This method is unusual in that it uses the HV driver, not the devMon driver
+     * hence its use of privateData, instead of devMonPrivateData */
     struct private_data *priv = dev->conn->privateData;
 
     remoteDriverLock(priv);
@@ -6208,6 +6212,8 @@ remoteNodeDeviceReset (virNodeDevicePtr dev)
 {
     int rv = -1;
     remote_node_device_reset_args args;
+    /* This method is unusual in that it uses the HV driver, not the devMon driver
+     * hence its use of privateData, instead of devMonPrivateData */
     struct private_data *priv = dev->conn->privateData;
 
     remoteDriverLock(priv);
@@ -6235,7 +6241,7 @@ remoteNodeDeviceCreateXML(virConnectPtr conn,
     remote_node_device_create_xml_args args;
     remote_node_device_create_xml_ret ret;
     virNodeDevicePtr dev = NULL;
-    struct private_data *priv = conn->privateData;
+    struct private_data *priv = conn->devMonPrivateData;
 
     remoteDriverLock(priv);
 
@@ -6261,7 +6267,7 @@ remoteNodeDeviceDestroy(virNodeDevicePtr dev)
 {
     int rv = -1;
     remote_node_device_destroy_args args;
-    struct private_data *priv = dev->conn->privateData;
+    struct private_data *priv = dev->conn->devMonPrivateData;
 
     remoteDriverLock(priv);
 
-- 
1.7.2.2