diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-09-14 15:50:38 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-09-14 15:52:42 +0100 |
commit | aa9e0057b19e29f76c9a81f9aebeeb1cb5bf1fdb (patch) | |
tree | 434d2d079a742c84c2de0eecca9cf00934ce85d8 /src | |
parent | 281b155800f2e62b994e59bef418ca200da8e93a (diff) | |
download | libguestfs-aa9e0057b19e29f76c9a81f9aebeeb1cb5bf1fdb.tar.gz libguestfs-aa9e0057b19e29f76c9a81f9aebeeb1cb5bf1fdb.tar.xz libguestfs-aa9e0057b19e29f76c9a81f9aebeeb1cb5bf1fdb.zip |
launch: libvirt: Mark appliance disk as <shareable/> (thanks Dan Berrange).
This is a fix for multiprogramming: If two instances of libguestfs
share the same appliance disk, then libvirt would unlabel the disk
when one of the instances closes the handle, resulting in the other
qemu being unable to continue accessing the appliance.
Adding the flag makes libvirt understand that the disk is shared so it
doesn't do this, and it apparently handles locking correctly too if we
were using sanlock.
Diffstat (limited to 'src')
-rw-r--r-- | src/launch-libvirt.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c index 37113633..346c7f91 100644 --- a/src/launch-libvirt.c +++ b/src/launch-libvirt.c @@ -978,6 +978,9 @@ construct_libvirt_xml_appliance (guestfs_h *g, xmlTextWriterPtr xo, BAD_CAST "0")); XMLERROR (-1, xmlTextWriterEndElement (xo)); + XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "shareable")); + XMLERROR (-1, xmlTextWriterEndElement (xo)); + /* We'd like to do this, but it's not supported by libvirt. * See construct_libvirt_xml_qemu_cmdline for the workaround. * |