Hello community, here is the log from the commit of package xen checked in at Sun Jul 29 10:57:33 CEST 2007. -------- --- arch/i386/xen/xen.changes 2007-07-24 22:02:21.000000000 +0200 +++ /mounts/work_src_done/STABLE/xen/xen.changes 2007-07-28 00:57:50.000000000 +0200 @@ -1,0 +2,8 @@ +Fri Jul 27 10:50:58 MDT 2007 - ccoffing@novell.com + +- #242953: Allow HVM to use blktap +- #239173: block-attach as RW for domUloader to avoid failures with + reiserfs (since blktap does not yet correctly communicate RO to + the kernel) + +------------------------------------------------------------------- New: ---- blktap.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ --- /var/tmp/diff_new_pack.Y21530/_old 2007-07-29 10:57:03.000000000 +0200 +++ /var/tmp/diff_new_pack.Y21530/_new 2007-07-29 10:57:03.000000000 +0200 @@ -34,7 +34,7 @@ BuildRequires: kernel-source kernel-syms xorg-x11 %endif Version: 3.1.0_15042 -Release: 14 +Release: 19 License: GPL v2 or later Group: System/Kernel Autoreqprov: on @@ -155,6 +155,7 @@ Patch209: vmx-check-descr.patch Patch210: x86_64-syscall-clear-df.patch Patch211: 32on64-extra-mem.patch +Patch212: blktap.patch URL: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/ BuildRoot: %{_tmppath}/%{name}-%{version}-build ExclusiveArch: %ix86 x86_64 ia64 @@ -623,6 +624,7 @@ %patch209 -p1 %patch210 -p1 %patch211 -p1 +%patch212 -p1 XEN_EXTRAVERSION=%version-%release XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}} sed -i "s/XEN_EXTRAVERSION[\t ]*.=.*\$/XEN_EXTRAVERSION = $XEN_EXTRAVERSION/" xen/Makefile @@ -934,6 +936,11 @@ /sbin/ldconfig %changelog +* Fri Jul 27 2007 - ccoffing@novell.com +- #242953: Allow HVM to use blktap +- #239173: block-attach as RW for domUloader to avoid failures with + reiserfs (since blktap does not yet correctly communicate RO to + the kernel) * Mon Jul 23 2007 - ccoffing@novell.com - Drop xen-bootloader-dryrun.diff; not needed for xen 3.1 - rpmlint: Actually apply patch for #280637 ++++++ blktap.patch ++++++ bug #239173 bug #242953 Index: xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== --- xen-3.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py +++ xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py @@ -1833,7 +1833,7 @@ class XendDomainInfo: (fn, BOOTLOADER_LOOPBACK_DEVICE)) vbd = { - 'mode': 'RO', + 'mode': 'RW', 'device': BOOTLOADER_LOOPBACK_DEVICE, } Index: xen-3.1-testing/tools/ioemu/xenstore.c =================================================================== --- xen-3.1-testing.orig/tools/ioemu/xenstore.c +++ xen-3.1-testing/tools/ioemu/xenstore.c @@ -81,9 +81,9 @@ void xenstore_parse_domain_config(int do { char **e = NULL; char *buf = NULL, *path; - char *fpath = NULL, *bpath = NULL, + char *fpath = NULL, *bpath = NULL, *btype = NULL, *dev = NULL, *params = NULL, *type = NULL, *media_present = NULL; - int i, is_scsi; + int i, is_scsi, is_tap; unsigned int len, num, hd_index; for(i = 0; i < MAX_DISKS + MAX_SCSI_DISKS; i++) @@ -116,6 +116,14 @@ void xenstore_parse_domain_config(int do bpath = xs_read(xsh, XBT_NULL, buf, &len); if (bpath == NULL) continue; + /* check to see if type is tap or not */ + if (pasprintf(&buf, "%s/type", bpath) == -1) + continue; + free(btype); + btype = xs_read(xsh, XBT_NULL, buf, &len); + if (btype == NULL) + continue; + is_tap = !strncmp(btype, "tap", 3); /* read the name of the device */ if (pasprintf(&buf, "%s/dev", bpath) == -1) continue; @@ -123,6 +131,13 @@ void xenstore_parse_domain_config(int do dev = xs_read(xsh, XBT_NULL, buf, &len); if (dev == NULL) continue; + /* Force xvdN to look like hdN */ + if (is_tap && !strncmp(dev, "xvd", 3)) { + memmove(dev, dev+1, strlen(dev)); + dev[0] = 'h'; + dev[1] = 'd'; + fprintf(stderr, "Got blktap '%s'\n", dev); + } is_scsi = !strncmp(dev, "sd", 2); if ((strncmp(dev, "hd", 2) && !is_scsi) || strlen(dev) != 3 ) continue; @@ -140,6 +155,14 @@ void xenstore_parse_domain_config(int do params = xs_read(xsh, XBT_NULL, buf, &len); if (params == NULL) continue; + /* Strip off blktap sub-type prefix aio: etc */ + if (is_tap) { + char *offset = strchr(params, ':'); + if (!offset) + continue; + memmove(params, offset+1, strlen(offset+1)+1); + fprintf(stderr, "Got params '%s'\n", params); + } /* * check if device has a phantom vbd; the phantom is hooked * to the frontend device (for ease of cleanup), so lookup @@ -196,6 +219,7 @@ void xenstore_parse_domain_config(int do free(type); free(params); free(dev); + free(btype); free(bpath); free(buf); free(path); ++++++ domUloader.py ++++++ --- arch/i386/xen/domUloader.py 2007-05-17 17:16:13.000000000 +0200 +++ /mounts/work_src_done/STABLE/xen/domUloader.py 2007-07-27 19:02:54.000000000 +0200 @@ -77,12 +77,13 @@ "Class representing a whole disk that may have partitions" def __init__(self, vdev, pdev): "c'tor: set up" - self.is_blk = (S_ISBLK(os.stat(pdev)[ST_MODE])) self.ldev = None self.vdev = vdev self.pdev = pdev self.mapped = 0 self.partitions = [] + self.pcount = 0 + self.is_blk = (S_ISBLK(os.stat(pdev)[ST_MODE])) self.pcount = self.scanpartitions() def physdev(self): @@ -251,11 +252,16 @@ mopts = "" if fstype: mopts += " -t %s" % fstype - mopts += " -o %s" % options + if options: + mopts += " -o %s" % options verbose_print("mount %s '%s' %s" % (mopts, self.pdev, mtpt)) fd = os.popen("mount %s '%s' %s" % (mopts, self.pdev, mtpt)) err = fd.close() if err: + try: + os.rmdir(mtpt) + except: + pass raise RuntimeError("Error %i from mount %s '%s' on %s" % \ (err, mopts, self.pdev, mtpt)) self.mountpoint = mtpt ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de