Re: [PATCH] virsh domxml-from-native to treat SCSI as the bus type for pseries by default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2013年10月24日 15:07, Shivaprasad G Bhat wrote:
From: Shivaprasad G Bhat <sbhat@xxxxxxxxxxxxxxxxxx>

The bus type IDE being enum Zero, the bus type on pseries system appears as IDE for all the disk types. Pseries platform needs this to appear as SCSI instead of IDE.

Signed-off-by: Shivaprasad G Bhat <sbhat@xxxxxxxxxxxxxxxxxx>
---
  src/qemu/qemu_command.c |   21 +++++++++++++++++----
  1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index abb62e9..728409f 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -9995,6 +9995,7 @@ error:
  static virDomainDiskDefPtr
  qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
                           const char *val,
+			 virDomainDefPtr dom,
                           int nvirtiodisk,
                           bool old_style_ceph_args)
  {
@@ -10018,7 +10019,11 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
      if (VIR_ALLOC(def) < 0)
          goto cleanup;
- def->bus = VIR_DOMAIN_DISK_BUS_IDE;
+    if (((dom->os.arch == VIR_ARCH_PPC64) &&
+         dom->os.machine && STREQ(dom->os.machine, "pseries")))
+        def->bus = VIR_DOMAIN_DISK_BUS_SCSI;
+    else
+    	def->bus = VIR_DOMAIN_DISK_BUS_IDE;
The indent should be 4 spaces.
      def->device = VIR_DOMAIN_DISK_DEVICE_DISK;
      def->type = VIR_DOMAIN_DISK_TYPE_FILE;
@@ -11332,8 +11337,13 @@ qemuParseCommandLine(virCapsPtr qemuCaps,
                  disk->type = VIR_DOMAIN_DISK_TYPE_FILE;
              if (STREQ(arg, "-cdrom")) {
                  disk->device = VIR_DOMAIN_DISK_DEVICE_CDROM;
-                if (VIR_STRDUP(disk->dst, "hdc") < 0)
-                    goto error;
+		if (((def->os.arch == VIR_ARCH_PPC64) &&
+                     def->os.machine && STREQ(def->os.machine, "pseries"))) {
+                        disk->bus = VIR_DOMAIN_DISK_BUS_SCSI;
Please pay attention of the indent.
+                	if (VIR_STRDUP(disk->dst, "sdc") < 0)
+	                    goto error;
+		} else if (VIR_STRDUP(disk->dst, "hdc") < 0)
+			goto error;
                  disk->readonly = true;
              } else {
                  if (STRPREFIX(arg, "-fd")) {
@@ -11345,6 +11355,9 @@ qemuParseCommandLine(virCapsPtr qemuCaps,
                          disk->bus = VIR_DOMAIN_DISK_BUS_IDE;
                      else
                          disk->bus = VIR_DOMAIN_DISK_BUS_SCSI;
+		    if (((def->os.arch == VIR_ARCH_PPC64) &&
+			def->os.machine && STREQ(def->os.machine, "pseries")))
+			disk->bus = VIR_DOMAIN_DISK_BUS_SCSI;
Here too.
                  }
                  if (VIR_STRDUP(disk->dst, arg + 1) < 0)
                      goto error;
@@ -11636,7 +11649,7 @@ qemuParseCommandLine(virCapsPtr qemuCaps,
              }
          } else if (STREQ(arg, "-drive")) {
              WANT_VALUE();
-            if (!(disk = qemuParseCommandLineDisk(xmlopt, val,
+            if (!(disk = qemuParseCommandLineDisk(xmlopt, val, def,
                                                    nvirtiodisk,
                                                    ceph_args != NULL)))
                  goto error;

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list





[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]