File detach-disk.patch of Package libvirt

Index: libvirt-0.7.2/src/xen/xend_internal.c
===================================================================
--- libvirt-0.7.2.orig/src/xen/xend_internal.c
+++ libvirt-0.7.2/src/xen/xend_internal.c
@@ -5896,7 +5896,7 @@ virDomainXMLDevID(virDomainPtr domain,
             return -1;
         xenUnifiedLock(priv);
         xref = xenStoreDomainGetDiskID(domain->conn, domain->id,
-                                       dev->data.disk->dst);
+                                       dev->data.disk->dst, class);
         xenUnifiedUnlock(priv);
         if (xref == NULL)
             return -1;
Index: libvirt-0.7.2/src/xen/xs_internal.c
===================================================================
--- libvirt-0.7.2.orig/src/xen/xs_internal.c
+++ libvirt-0.7.2/src/xen/xs_internal.c
@@ -968,7 +968,8 @@ xenStoreDomainGetNetworkID(virConnectPtr
  *         freed by the caller.
  */
 char *
-xenStoreDomainGetDiskID(virConnectPtr conn, int id, const char *dev) {
+xenStoreDomainGetDiskID(virConnectPtr conn, int id,
+			const char *dev, const char *class) {
     char dir[80], path[128], **list = NULL, *val = NULL;
     unsigned int devlen, len, i, num;
     char *ret = NULL;
@@ -986,7 +987,7 @@ xenStoreDomainGetDiskID(virConnectPtr co
     if (devlen <= 0)
         return (NULL);
 
-    snprintf(dir, sizeof(dir), "/local/domain/0/backend/vbd/%d", id);
+    snprintf(dir, sizeof(dir), "/local/domain/0/backend/%s/%d", class, id);
     list = xs_directory(priv->xshandle, 0, dir, &num);
     if (list != NULL) {
         for (i = 0; i < num; i++) {
Index: libvirt-0.7.2/src/xen/xs_internal.h
===================================================================
--- libvirt-0.7.2.orig/src/xen/xs_internal.h
+++ libvirt-0.7.2/src/xen/xs_internal.h
@@ -49,7 +49,8 @@ char *		xenStoreDomainGetNetworkID(virCo
                                          const char *mac);
 char *		xenStoreDomainGetDiskID(virConnectPtr conn,
                                          int id,
-                                         const char *dev);
+                                         const char *dev,
+					 const char *class);
 char *          xenStoreDomainGetName(virConnectPtr conn,
                                       int id);
 int             xenStoreDomainGetUUID(virConnectPtr conn,
openSUSE Build Service is sponsored by