Compare commits

..

14 Commits

Author SHA1 Message Date
Cole Robinson 4e59fd390c Rebased to version 0.9.6.4
CVE-2013-0170 libvirt: use-after-free in virNetMessageFree() (bz #893450, bz #905173)
2013-01-28 15:17:26 -05:00
Cole Robinson 66c6e81b12 Rebased to version 0.9.6.3
CVE-2012-4423 Fix null dereference (bz #857135, bz #857133)
2012-10-07 19:25:58 -04:00
Cole Robinson 397698b913 Rebased to version 0.9.6.2
Fix crash in virTypedParameterArrayClear (bz 844745, bz 844734)
2012-08-13 19:00:59 -04:00
Cole Robinson 4b8c90d47a Remove unapplied patches 2012-06-19 09:49:03 -04:00
Cole Robinson 21b5b71da6 Rebased to version 0.9.6.1
Various stream fixes and improvements (bz 743900)
Fix state syncing when xen domain shuts down (bz 746007)
Don't show <console> for xen dom0 (bz 752271)
Fix selinux denial on /usr/libexec/pt_chown from LXC (bz 785411)
Don't flood LXC log file (bz 785431)
Fix several double close bugs (bz 827127)
Fix PCI assignment for USB2.0 controllers (bz 822160)
2012-06-15 17:29:11 -04:00
Osier Yang 159aa2a963 release 0.9.6-6
- Bug 786890 fix typo of chkconfig comandline for specfile
2012-03-30 21:08:32 +08:00
Cole Robinson afd84ddc60 Fix crash when migrating many guests with vdsm (bz 785789)
Fix libvirtd hang in vmware guest (bz 796451)
Don't start HAL in init script (bz 789234)
Fix storage lookup errors with empty lvm pool (bz 782261)
Fix test failures with new gnutls
2012-03-04 10:53:29 -05:00
Laine Stump ac5ee8c94d release 0.9.6-4 of libvirt, take 2
- eliminate crash of shunloadtest encountered during build
- "fedora-13" machine type patch was missing a hunk.
- specfile needed to BuildRequires: autoconf tools because
  the new virtime APIs require re-running autoconf.
2011-12-19 15:14:56 -05:00
Laine Stump 1dd1aab12e release 0.9.6-3
- replace "fedora-13" machine type with "pc-0.14" to prepare
  systems for removal of "fedora-13" from qemu - Bug 754772
- don't add iptables rules for externally managed networks
  - Buf 765964 / CVE-2011-4600
- specfile changes
  - Bug 761329 don't use chkconfig --list
  - Bug 758896 mark directories in /var/run as ghosts
  - Bug 738725 fix logic bug in deciding to turn on cgconfig
  - Bug 754909 add dmidecode as a prerequisite
- new async-safe time API + make logging async signal sage wrt.
  time stamp generation - Bug 757382
2011-12-18 16:41:29 -05:00
Dan Horák 8461092bcd xenlight available only on Xen arches (#745020) 2011-10-11 10:28:38 +02:00
Laine Stump f050abb9f1 release 0.9.6-2
* Make PCI multifunction support more manual - Bug 742836
* Builds on F15 should still use cgconfig - Bug 738725
2011-10-03 09:50:58 -04:00
Daniel Veillard 5248901265 Upstream release of 0.9.6
Fix the qemu reboot bug from 0.9.5 and a few others bug fixes
2011-09-22 07:31:49 -04:00
Daniel Veillard 4ad26eac7d Upstream release of libvirt-0.9.5 2011-09-20 08:36:31 -04:00
Daniel Veillard 9e06dca287 Upstream release of 0.9.4 2011-08-03 10:41:37 +01:00
9 changed files with 410 additions and 878 deletions
+3
View File
@@ -3,3 +3,6 @@
i686
x86_64
libvirt-*.tar.gz
/libvirt-0.8.4.tar.gz
/libvirt-0.8.5.tar.gz
/libvirt-0.8.7.tar.gz
+26 -22
View File
@@ -1,4 +1,4 @@
From f3997733f0bca081d71848e66ca7d728b4c0a864 Mon Sep 17 00:00:00 2001
From a9311c363defcba7479fdabfb4862bcf851a6b7c Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Tue, 8 May 2012 20:42:44 +0300
Subject: [PATCH] domain_conf: add "default" to list of valid spice channels
@@ -12,6 +12,10 @@ RHBZ: 819499
Signed-off-by: Alon Levy <alevy@redhat.com>
(cherry picked from commit ba97e4edc6aa439a4f1e70855cf4503181efdb7f)
Conflicts:
src/conf/domain_conf.c
Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
docs/formatdomain.html.in | 7 +++++++
@@ -24,10 +28,10 @@ Signed-off-by: Cole Robinson <crobinso@redhat.com>
7 files changed, 52 insertions(+), 2 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index e33913f..4a70b0f 100644
index d082697..db5fa9b 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -2913,6 +2913,13 @@ qemu-kvm -net nic,model=? /dev/null
@@ -2308,6 +2308,13 @@ qemu-kvm -net nic,model=? /dev/null
<span class="since">Since 0.9.3</span>
NB, this may not be supported by all hypervisors.
<span class="since">"spice" since 0.8.6</span>.
@@ -42,10 +46,10 @@ index e33913f..4a70b0f 100644
<p>
When SPICE has both a normal and TLS secured TCP port
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 5bcf1b9..30ab4c6 100644
index fe81c26..0d6edc8 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1779,6 +1779,15 @@
@@ -1388,6 +1388,15 @@
</choice>
</attribute>
</optional>
@@ -62,10 +66,10 @@ index 5bcf1b9..30ab4c6 100644
<ref name="listenElements"/>
<zeroOrMore>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d017ea4..2b21b11 100644
index 9cc1644..963768e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -6069,6 +6069,8 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
@@ -4689,6 +4689,8 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
char *port = virXMLPropString(node, "port");
char *tlsPort;
char *autoport;
@@ -74,7 +78,7 @@ index d017ea4..2b21b11 100644
if (port) {
if (virStrToLong_i(port, NULL, 10, &def->data.spice.port) < 0) {
@@ -6101,6 +6103,20 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
@@ -4726,6 +4728,20 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
VIR_FREE(autoport);
}
@@ -92,10 +96,10 @@ index d017ea4..2b21b11 100644
+ VIR_FREE(defaultMode);
+ }
+
if (def->data.spice.port == -1 && def->data.spice.tlsPort == -1) {
/* Legacy compat syntax, used -1 for auto-port */
def->data.spice.autoport = 1;
@@ -12111,6 +12127,10 @@ virDomainGraphicsDefFormat(virBufferPtr buf,
def->data.spice.keymap = virXMLPropString(node, "keymap");
if (virDomainGraphicsAuthDefParseXML(node, &def->data.spice.auth,
@@ -10311,6 +10327,10 @@ virDomainGraphicsDefFormat(virBufferPtr buf,
virBufferEscapeString(buf, " keymap='%s'",
def->data.spice.keymap);
@@ -107,10 +111,10 @@ index d017ea4..2b21b11 100644
break;
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index a2fea00..62eaafb 100644
index d40fda6..f6df0ea 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1233,6 +1233,7 @@ struct _virDomainGraphicsDef {
@@ -921,6 +921,7 @@ struct _virDomainGraphicsDef {
virDomainGraphicsAuthDef auth;
unsigned int autoport :1;
int channels[VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_LAST];
@@ -119,10 +123,10 @@ index a2fea00..62eaafb 100644
int jpeg;
int zlib;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 55e772f..f411712 100644
index 366913b..ee192d3 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5499,6 +5499,7 @@ qemuBuildCommandLine(virConnectPtr conn,
@@ -4720,6 +4720,7 @@ qemuBuildCommandLine(virConnectPtr conn,
const char *listenAddr = NULL;
char *netAddr = NULL;
int ret;
@@ -130,7 +134,7 @@ index 55e772f..f411712 100644
if (!qemuCapsGet(qemuCaps, QEMU_CAPS_SPICE)) {
qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -5582,6 +5583,18 @@ qemuBuildCommandLine(virConnectPtr conn,
@@ -4781,6 +4782,18 @@ qemuBuildCommandLine(virConnectPtr conn,
virBufferAsprintf(&opt, ",x509-dir=%s",
driver->spiceTLSx509certdir);
@@ -155,19 +159,19 @@ index c9fdb99..698e39c 100644
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.args
@@ -2,7 +2,7 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=spice \
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nodefaults -monitor \
unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb -hda \
/dev/HostVG/QEMUGuest1 -spice port=5903,tls-port=5904,addr=127.0.0.1,\
unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -hda \
/dev/HostVG/QEMUGuest1 -usb -spice port=5903,tls-port=5904,addr=127.0.0.1,\
-x509-dir=/etc/pki/libvirt-spice,tls-channel=main,plaintext-channel=inputs,\
+x509-dir=/etc/pki/libvirt-spice,tls-channel=default,tls-channel=main,plaintext-channel=inputs,\
image-compression=auto_glz,jpeg-wan-compression=auto,zlib-glz-wan-compression=auto,\
playback-compression=on,streaming-video=filter,disable-copy-paste -vga \
qxl -global qxl.vram_size=18874368 -device qxl,id=video1,vram_size=33554432,bus=pci.0,addr=0x4 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
index 8930b60..a3789f2 100644
index 5313b3a..29f20ab 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
@@ -22,7 +22,7 @@
<controller type='usb' index='0'/>
@@ -21,7 +21,7 @@
</disk>
<controller type='ide' index='0'/>
<input type='mouse' bus='ps2'/>
- <graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
+25 -11
View File
@@ -1,4 +1,4 @@
From 3c3816ed226e766aa76624de7d159cdd1ee67913 Mon Sep 17 00:00:00 2001
From b8c86d80df4ba6c682f05974892f5d7ab8f317a9 Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Tue, 8 May 2012 16:00:28 +0300
Subject: [PATCH] domain_conf: add "usbredir" to list of valid spice channels
@@ -23,10 +23,10 @@ Signed-off-by: Cole Robinson <crobinso@redhat.com>
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 801e1ec..e33913f 100644
index 390476d..d082697 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -2922,9 +2922,11 @@ qemu-kvm -net nic,model=? /dev/null
@@ -2317,9 +2317,11 @@ qemu-kvm -net nic,model=? /dev/null
main &lt;graphics&gt; element. Valid channel names
include <code>main</code>, <code>display</code>,
<code>inputs</code>, <code>cursor</code>,
@@ -42,10 +42,10 @@ index 801e1ec..e33913f 100644
<pre>
&lt;graphics type='spice' port='-1' tlsPort='-1' autoport='yes'&gt;
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 0cc04af..5bcf1b9 100644
index 9f8d292..fe81c26 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1792,6 +1792,7 @@
@@ -1401,6 +1401,7 @@
<value>playback</value>
<value>record</value>
<value>smartcard</value>
@@ -54,10 +54,10 @@ index 0cc04af..5bcf1b9 100644
</attribute>
<attribute name="mode">
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d886b60..d017ea4 100644
index 2f9da71..9cc1644 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -428,7 +428,8 @@ VIR_ENUM_IMPL(virDomainGraphicsSpiceChannelName,
@@ -389,7 +389,8 @@ VIR_ENUM_IMPL(virDomainGraphicsSpiceChannelName,
"cursor",
"playback",
"record",
@@ -68,10 +68,10 @@ index d886b60..d017ea4 100644
VIR_ENUM_IMPL(virDomainGraphicsSpiceChannelMode,
VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_LAST,
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 1b8741e..a2fea00 100644
index f2cd8eb..d40fda6 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1097,6 +1097,7 @@ enum virDomainGraphicsSpiceChannelName {
@@ -797,6 +797,7 @@ enum virDomainGraphicsSpiceChannelName {
VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_PLAYBACK,
VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_RECORD,
VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_SMARTCARD,
@@ -161,10 +161,10 @@ index 0000000..1dc23bd
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index a32d4f8..b128c07 100644
index 1dc6a01..d5475c5 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -540,6 +540,12 @@ mymain(void)
@@ -405,6 +405,12 @@ mymain(void)
QEMU_CAPS_VGA, QEMU_CAPS_VGA_QXL,
QEMU_CAPS_DEVICE, QEMU_CAPS_SPICE,
QEMU_CAPS_DEVICE_QXL_VGA);
@@ -180,3 +180,17 @@ index a32d4f8..b128c07 100644
--
1.7.7.6
diff -rup libvirt-0.9.6.1/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml foo/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml
--- libvirt-0.9.6.1/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml 2012-06-15 17:10:09.086979189 -0400
+++ foo/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml 2012-06-15 17:21:08.788770706 -0400
@@ -1,8 +1,8 @@
<domain type='qemu'>
<name>QEMUGuest1</name>
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
- <memory unit='KiB'>219136</memory>
- <currentMemory unit='KiB'>219136</currentMemory>
+ <memory>219136</memory>
+ <currentMemory>219136</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='i686' machine='pc'>hvm</type>
+136
View File
@@ -0,0 +1,136 @@
From 57f08fb47b0938a9e8969b857380926fa6966ca8 Mon Sep 17 00:00:00 2001
From: Laine Stump <laine@laine.org>
Date: Wed, 14 Mar 2012 01:41:35 -0400
Subject: [PATCH] Emit graphics events when a SPICE client
connects/disconnects
Wire up the domain graphics event notifications for SPICE. Adapted
from a RHEL-only patch written by Dan Berrange that used custom
__com.redhat_SPICE events - equivalent events are now available in
upstream QEMU (including a SPICE_CONNECTED event, which was missing in
the __COM.redhat_SPICE version).
* src/qemu/qemu_monitor_json.c: Wire up SPICE graphics events
(cherry picked from commit 89ae6a5a30bd91cfb2365544f9dd2e6c2a36ecca)
Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
src/qemu/qemu_monitor_json.c | 56 +++++++++++++++++++++++++++++++++++++++---
1 files changed, 52 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index e38c2ed..d4a3b7b 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -57,6 +57,9 @@ static void qemuMonitorJSONHandleVNCConnect(qemuMonitorPtr mon, virJSONValuePtr
static void qemuMonitorJSONHandleVNCInitialize(qemuMonitorPtr mon, virJSONValuePtr data);
static void qemuMonitorJSONHandleVNCDisconnect(qemuMonitorPtr mon, virJSONValuePtr data);
static void qemuMonitorJSONHandleBlockJob(qemuMonitorPtr mon, virJSONValuePtr data);
+static void qemuMonitorJSONHandleSPICEConnect(qemuMonitorPtr mon, virJSONValuePtr data);
+static void qemuMonitorJSONHandleSPICEInitialize(qemuMonitorPtr mon, virJSONValuePtr data);
+static void qemuMonitorJSONHandleSPICEDisconnect(qemuMonitorPtr mon, virJSONValuePtr data);
struct {
const char *type;
@@ -73,6 +76,9 @@ struct {
{ "VNC_INITIALIZED", qemuMonitorJSONHandleVNCInitialize, },
{ "VNC_DISCONNECTED", qemuMonitorJSONHandleVNCDisconnect, },
{ "BLOCK_JOB_COMPLETED", qemuMonitorJSONHandleBlockJob, },
+ { "SPICE_CONNECTED", qemuMonitorJSONHandleSPICEConnect, },
+ { "SPICE_INITIALIZED", qemuMonitorJSONHandleSPICEInitialize, },
+ { "SPICE_DISCONNECTED", qemuMonitorJSONHandleSPICEDisconnect, },
};
@@ -617,7 +623,7 @@ VIR_ENUM_DECL(qemuMonitorGraphicsAddressFamily)
VIR_ENUM_IMPL(qemuMonitorGraphicsAddressFamily, VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6 + 1,
"ipv4", "ipv6");
-static void qemuMonitorJSONHandleVNC(qemuMonitorPtr mon, virJSONValuePtr data, int phase)
+static void qemuMonitorJSONHandleGraphics(qemuMonitorPtr mon, virJSONValuePtr data, int phase)
{
const char *localNode, *localService, *localFamily;
const char *remoteNode, *remoteService, *remoteFamily;
@@ -636,14 +642,38 @@ static void qemuMonitorJSONHandleVNC(qemuMonitorPtr mon, virJSONValuePtr data, i
}
authScheme = virJSONValueObjectGetString(server, "auth");
+ if (!authScheme) {
+ VIR_WARN("missing auth scheme in graphics event");
+ return;
+ }
localFamily = virJSONValueObjectGetString(server, "family");
+ if (!localFamily) {
+ VIR_WARN("missing local address family in graphics event");
+ return;
+ }
localNode = virJSONValueObjectGetString(server, "host");
+ if (!localNode) {
+ VIR_WARN("missing local hostname in graphics event");
+ return;
+ }
localService = virJSONValueObjectGetString(server, "service");
+ if (!localService)
+ localService = ""; /* Spice has multiple ports, so this isn't provided */
remoteFamily = virJSONValueObjectGetString(client, "family");
+ if (!remoteFamily) {
+ VIR_WARN("missing remote address family in graphics event");
+ return;
+ }
remoteNode = virJSONValueObjectGetString(client, "host");
+ if (!remoteNode) {
+ VIR_WARN("missing remote hostname in graphics event");
+ return;
+ }
remoteService = virJSONValueObjectGetString(client, "service");
+ if (!remoteService)
+ remoteService = ""; /* Spice has multiple ports, so this isn't provided */
saslUsername = virJSONValueObjectGetString(client, "sasl_username");
x509dname = virJSONValueObjectGetString(client, "x509_dname");
@@ -665,19 +695,37 @@ static void qemuMonitorJSONHandleVNC(qemuMonitorPtr mon, virJSONValuePtr data, i
static void qemuMonitorJSONHandleVNCConnect(qemuMonitorPtr mon, virJSONValuePtr data)
{
- qemuMonitorJSONHandleVNC(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_CONNECT);
+ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_CONNECT);
}
static void qemuMonitorJSONHandleVNCInitialize(qemuMonitorPtr mon, virJSONValuePtr data)
{
- qemuMonitorJSONHandleVNC(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_INITIALIZE);
+ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_INITIALIZE);
}
static void qemuMonitorJSONHandleVNCDisconnect(qemuMonitorPtr mon, virJSONValuePtr data)
{
- qemuMonitorJSONHandleVNC(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_DISCONNECT);
+ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_DISCONNECT);
+}
+
+
+static void qemuMonitorJSONHandleSPICEConnect(qemuMonitorPtr mon, virJSONValuePtr data)
+{
+ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_CONNECT);
+}
+
+
+static void qemuMonitorJSONHandleSPICEInitialize(qemuMonitorPtr mon, virJSONValuePtr data)
+{
+ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_INITIALIZE);
+}
+
+
+static void qemuMonitorJSONHandleSPICEDisconnect(qemuMonitorPtr mon, virJSONValuePtr data)
+{
+ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_DISCONNECT);
}
static void qemuMonitorJSONHandleBlockJob(qemuMonitorPtr mon, virJSONValuePtr data)
--
1.7.7.6
-22
View File
@@ -1,22 +0,0 @@
--- libvirt-0.9.11.5.orig/src/lxc/lxc_container.c 2012-08-12 18:03:58.000000000 -0500
+++ libvirt-0.9.11.5.orig/src/lxc/lxc_container.c 2012-09-21 07:38:19.000000000 -0500
@@ -506,7 +506,7 @@
if (pivotRoot) {
#if HAVE_SELINUX
if (getfilecon("/", &con) < 0 &&
- errno != ENOTSUP) {
+ errno != ENOTSUP && errno != ENODATA) {
virReportSystemError(errno, "%s",
_("Failed to query file context on /"));
goto cleanup;
--- libvirt-0.9.11.5.orig/src/lxc/lxc_controller.c 2012-08-12 18:03:58.000000000 -0500
+++ libvirt-0.9.11.5.orig/src/lxc/lxc_controller.c 2012-09-21 07:20:41.000000000 -0500
@@ -1480,7 +1480,7 @@
#if HAVE_SELINUX
if (getfilecon(root->src, &con) < 0 &&
- errno != ENOTSUP) {
+ errno != ENOTSUP && errno != ENODATA) {
virReportSystemError(errno,
_("Failed to query file context on %s"),
root->src);
@@ -1,7 +1,8 @@
From 7c96ce960b84ba19b9cc8e090615f54206e44ff0 Mon Sep 17 00:00:00 2001
From eaf056bf995558ecf6620ce031287f3aa81b66de Mon Sep 17 00:00:00 2001
From: Laine Stump <laine@laine.org>
Date: Tue, 6 Dec 2011 12:47:28 -0500
Subject: [PATCH] qemu: replace deprecated fedora-13 machine type with pc-0.14
Subject: [PATCH 1/2] qemu: replace deprecated fedora-13 machine type with
pc-0.14
This addresses https://bugzilla.redhat.com/show_bug.cgi?id=754772 .
It should only be applied to Fedora builds of libvirt, F15 and
@@ -64,10 +65,10 @@ which must be applied with this patch, and which *is* also upstream).
1 files changed, 59 insertions(+), 3 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f8d0a4c..c79014b 100644
index 318f523..7906bb8 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8394,7 +8394,25 @@ virDomainDefPtr virDomainDefParseString(virCapsPtr caps,
@@ -7500,7 +7500,25 @@ virDomainDefPtr virDomainDefParseString(virCapsPtr caps,
unsigned int expectedVirtTypes,
unsigned int flags)
{
@@ -94,7 +95,7 @@ index f8d0a4c..c79014b 100644
}
virDomainDefPtr virDomainDefParseFile(virCapsPtr caps,
@@ -11737,8 +11755,30 @@ virDomainDefFormatInternal(virDomainDefPtr def,
@@ -10648,8 +10666,30 @@ virDomainDefFormatInternal(virDomainDefPtr def,
virBufferAddLit(buf, " <type");
if (def->os.arch)
virBufferAsprintf(buf, " arch='%s'", def->os.arch);
@@ -127,7 +128,7 @@ index f8d0a4c..c79014b 100644
/*
* HACK: For xen driver we previously used bogus 'linux' as the
* os type for paravirt, whereas capabilities declare it to
@@ -12149,6 +12189,22 @@ static virDomainObjPtr virDomainLoadConfig(virCapsPtr caps,
@@ -11100,6 +11140,22 @@ static virDomainObjPtr virDomainLoadConfig(virCapsPtr caps,
VIR_DOMAIN_XML_INACTIVE)))
goto error;
@@ -151,5 +152,5 @@ index f8d0a4c..c79014b 100644
goto error;
--
1.7.7.6
1.7.7.4
-218
View File
@@ -1,218 +0,0 @@
commit b8012ce9312f00947c5ca7250a7a96534c85835f
Author: David Weber <wb@munzinger.de>
Date: Mon May 14 09:53:02 2012 +0000
sanlock: fix locking for readonly devices
Add ignore param for readonly and shared disk in sanlock
diff --git a/src/locking/libvirt_sanlock.aug b/src/locking/libvirt_sanlock.aug
index 5f5f8a1..d65b002 100644
--- a/src/locking/libvirt_sanlock.aug
+++ b/src/locking/libvirt_sanlock.aug
@@ -21,6 +21,7 @@ module Libvirt_sanlock =
| bool_entry "auto_disk_leases"
| int_entry "host_id"
| bool_entry "require_lease_for_disks"
+ | bool_entry "ignore_readonly_and_shared_disks"
let comment = [ label "#comment" . del /#[ \t]*/ "# " . store /([^ \t\n][^\n]*)?/ . del /\n/ "\n" ]
let empty = [ label "#empty" . eol ]
diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c
index d344d6a..146aefd 100644
--- a/src/locking/lock_driver_sanlock.c
+++ b/src/locking/lock_driver_sanlock.c
@@ -1,7 +1,7 @@
/*
* lock_driver_sanlock.c: A lock driver for Sanlock
*
- * Copyright (C) 2010-2011 Red Hat, Inc.
+ * Copyright (C) 2010-2012 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -65,6 +65,7 @@ struct _virLockManagerSanlockDriver {
bool requireLeaseForDisks;
int hostID;
bool autoDiskLease;
+ bool ignoreReadonlyShared;
char *autoDiskLeasePath;
};
@@ -114,6 +115,10 @@ static int virLockManagerSanlockLoadConfig(const char *configFile)
CHECK_TYPE("auto_disk_leases", VIR_CONF_LONG);
if (p) driver->autoDiskLease = p->l;
+ p = virConfGetValue(conf, "ignore_readonly_and_shared_disks");
+ CHECK_TYPE("ignore_readonly_and_shared_disks", VIR_CONF_LONG);
+ if (p) driver->ignoreReadonlyShared = p->l;
+
p = virConfGetValue(conf, "disk_lease_dir");
CHECK_TYPE("disk_lease_dir", VIR_CONF_STRING);
if (p && p->str) {
@@ -625,6 +630,12 @@ static int virLockManagerSanlockAddResource(virLockManagerPtr lock,
return -1;
}
+ if ((flags & (VIR_LOCK_MANAGER_RESOURCE_READONLY |
+ VIR_LOCK_MANAGER_RESOURCE_SHARED)) &&
+ driver->ignoreReadonlyShared) {
+ return 0;
+ }
+
if (flags & VIR_LOCK_MANAGER_RESOURCE_READONLY) {
virLockError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Readonly leases are not supported"));
diff --git a/src/locking/sanlock.conf b/src/locking/sanlock.conf
index efc35ee..19ab2b3 100644
--- a/src/locking/sanlock.conf
+++ b/src/locking/sanlock.conf
@@ -52,3 +52,10 @@
# to enabled, otherwise it defaults to disabled.
#
#require_lease_for_disks = 1
+
+#
+# Enable this flag to have sanlock ignore readonly and shared disks.
+# If disabled, then this rejects attempts to share resources until
+# sanlock gains support for shared locks.
+#
+#ignore_readonly_and_shared_disks = 1
commit acbd4965c44c4dbc676dfe89aff970052e376073
Author: Daniel P. Berrange <berrange@redhat.com>
Date: Thu Jun 21 15:34:46 2012 +0100
Add support for shared sanlock leases
A sanlock lease can be marked as shared (rather
than exclusive) using SANLK_RES_SHARED flag. This
adds support for that flag and ensures that in auto
disk mode, any shared disks use shared leases. This
also makes any read-only disks be completely
ignored.
These changes remove the need for the option
ignore_readonly_and_shared_disks
so that is removed
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c
index 146aefd..16941c9 100644
--- a/src/locking/lock_driver_sanlock.c
+++ b/src/locking/lock_driver_sanlock.c
@@ -65,7 +65,6 @@ struct _virLockManagerSanlockDriver {
bool requireLeaseForDisks;
int hostID;
bool autoDiskLease;
- bool ignoreReadonlyShared;
char *autoDiskLeasePath;
};
@@ -115,10 +114,6 @@ static int virLockManagerSanlockLoadConfig(const char *configFile)
CHECK_TYPE("auto_disk_leases", VIR_CONF_LONG);
if (p) driver->autoDiskLease = p->l;
- p = virConfGetValue(conf, "ignore_readonly_and_shared_disks");
- CHECK_TYPE("ignore_readonly_and_shared_disks", VIR_CONF_LONG);
- if (p) driver->ignoreReadonlyShared = p->l;
-
p = virConfGetValue(conf, "disk_lease_dir");
CHECK_TYPE("disk_lease_dir", VIR_CONF_STRING);
if (p && p->str) {
@@ -428,7 +423,8 @@ static int virLockManagerSanlockDiskLeaseName(const char *path,
static int virLockManagerSanlockAddLease(virLockManagerPtr lock,
const char *name,
size_t nparams,
- virLockManagerParamPtr params)
+ virLockManagerParamPtr params,
+ bool shared)
{
virLockManagerSanlockPrivatePtr priv = lock->privateData;
int ret = -1;
@@ -440,6 +436,7 @@ static int virLockManagerSanlockAddLease(virLockManagerPtr lock,
goto cleanup;
}
+ res->flags = shared ? SANLK_RES_SHARED : 0;
res->num_disks = 1;
if (!virStrcpy(res->name, name, SANLK_NAME_LEN)) {
virLockError(VIR_ERR_INTERNAL_ERROR,
@@ -485,7 +482,8 @@ cleanup:
static int virLockManagerSanlockAddDisk(virLockManagerPtr lock,
const char *name,
size_t nparams,
- virLockManagerParamPtr params ATTRIBUTE_UNUSED)
+ virLockManagerParamPtr params ATTRIBUTE_UNUSED,
+ bool shared)
{
virLockManagerSanlockPrivatePtr priv = lock->privateData;
int ret = -1;
@@ -503,6 +501,7 @@ static int virLockManagerSanlockAddDisk(virLockManagerPtr lock,
goto cleanup;
}
+ res->flags = shared ? SANLK_RES_SHARED : 0;
res->num_disks = 1;
if (virLockManagerSanlockDiskLeaseName(name, res->name, SANLK_NAME_LEN) < 0)
goto cleanup;
@@ -630,27 +629,15 @@ static int virLockManagerSanlockAddResource(virLockManagerPtr lock,
return -1;
}
- if ((flags & (VIR_LOCK_MANAGER_RESOURCE_READONLY |
- VIR_LOCK_MANAGER_RESOURCE_SHARED)) &&
- driver->ignoreReadonlyShared) {
- return 0;
- }
-
- if (flags & VIR_LOCK_MANAGER_RESOURCE_READONLY) {
- virLockError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Readonly leases are not supported"));
- return -1;
- }
- if (flags & VIR_LOCK_MANAGER_RESOURCE_SHARED) {
- virLockError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Shareable leases are not supported"));
- return -1;
- }
+ /* Treat R/O resources as a no-op lock request */
+ if (flags & VIR_LOCK_MANAGER_RESOURCE_READONLY)
+ return 0;
switch (type) {
case VIR_LOCK_MANAGER_RESOURCE_TYPE_DISK:
if (driver->autoDiskLease) {
- if (virLockManagerSanlockAddDisk(lock, name, nparams, params) < 0)
+ if (virLockManagerSanlockAddDisk(lock, name, nparams, params,
+ !!(flags & VIR_LOCK_MANAGER_RESOURCE_SHARED)) < 0)
return -1;
if (virLockManagerSanlockCreateLease(priv->res_args[priv->res_count-1]) < 0)
@@ -664,7 +651,8 @@ static int virLockManagerSanlockAddResource(virLockManagerPtr lock,
break;
case VIR_LOCK_MANAGER_RESOURCE_TYPE_LEASE:
- if (virLockManagerSanlockAddLease(lock, name, nparams, params) < 0)
+ if (virLockManagerSanlockAddLease(lock, name, nparams, params,
+ !!(flags & VIR_LOCK_MANAGER_RESOURCE_SHARED)) < 0)
return -1;
break;
diff --git a/src/locking/sanlock.conf b/src/locking/sanlock.conf
index 19ab2b3..efc35ee 100644
--- a/src/locking/sanlock.conf
+++ b/src/locking/sanlock.conf
@@ -52,10 +52,3 @@
# to enabled, otherwise it defaults to disabled.
#
#require_lease_for_disks = 1
-
-#
-# Enable this flag to have sanlock ignore readonly and shared disks.
-# If disabled, then this rejects attempts to share resources until
-# sanlock gains support for shared locks.
-#
-#ignore_readonly_and_shared_disks = 1
+211 -597
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
2d4eafc04fe52a8503acb6d42888a618 libvirt-0.9.11.10.tar.gz
c374a6f0426e787576d8e5d3fcc3c7a1 libvirt-0.9.6.4.tar.gz