| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
(cherry picked from commit 8df259496a80bc74edbab4436e3679d0900bd173)
|
|
|
|
| |
(cherry picked from commit 5546ea6d68532caa69fbede1f29385afe34e7362)
|
|
|
|
| |
(cherry picked from commit bfbfe6dd788ee3705383b544c5bc238a7dd5ca53)
|
|
|
|
|
|
| |
See also:
https://bugzilla.redhat.com/show_bug.cgi?id=835466#c9
(cherry picked from commit 1cde66165aac222f1a07ad4c3873c61d49eabb02)
|
|
|
|
| |
(cherry picked from commit b749dc70742e749dbd7c0c20e6e7191fdd199170)
|
|
|
|
|
|
|
| |
This reverts commit 6e5a85bb9b6557bc337625a339728e23f5f2dd94.
It turns out this is a bug in QEMU after all.
(cherry picked from commit bd3e42a8ded1ed7a4177ad03646572eb6155a49c)
|
|
|
|
| |
(cherry picked from commit e6dec159488f589df62c9f59477281f8264a19c8)
|
| |
|
|
|
|
| |
(cherry picked from commit 1596b6026ddd1e343efc6a74fc23f46e4975868f)
|
|
|
|
|
|
|
|
| |
https://bugs.launchpad.net/qemu/+bug/1021649 is invalid, probably
caused by a Fedora ROM.
This updates commit 52d188e32fb8addb45bf926df07e34ab35898f85.
(cherry picked from commit 6e5a85bb9b6557bc337625a339728e23f5f2dd94)
|
|
|
|
| |
(cherry picked from commit ad7c4498f66f37c4219242c6df04d28e9ee7877f)
|
|
|
|
| |
(cherry picked from commit 52d188e32fb8addb45bf926df07e34ab35898f85)
|
|
|
|
|
|
|
|
|
| |
Earlier versions of qemu contained a bug in the qcow2 code which
causes qemu to segfault when shutting down and flushing its internal
cache, and this can result in data loss.
Cherry picked from commit 7996e0882442dc7bac2ab573e2fcac0b488c8cc7
and changed to suit stable-1.18 releases.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new API splits orderly close into a two-step process:
if (guestfs_shutdown (g) == -1) {
/* handle the error, eg. qemu error */
}
guestfs_close (g);
Note that the explicit shutdown step is only necessary in the case
where you have made changes to the disk image and want to handle write
errors. Read the documentation for further information.
This change also:
- deprecates guestfs_kill_subprocess
- turns guestfs_kill_subprocess into the same as guestfs_shutdown
- changes guestfish and other tools to call shutdown + close
where necessary (not for read-only tools)
- updates documentation
- updates examples
(cherry picked from commit ffbf1475f7ae7c462db289ad4834391469e72edd)
|
|
|
|
|
|
| |
Currently guestfs_close has no method to return an error indication,
so this commit simply prints the error on stderr.
(cherry picked from commit bcc4ffb52b9f4b5db7861682905ec32844f4603b)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The order is now:
- remove the handle from the list of handles
- send close trace message
- sync and shutdown qemu
- run user close callback
- free temporary directory
- free memory
This commit ought to be no functional change.
(cherry picked from commit fc3c6fff4b0a6ffeb75aa78b1d73241a14a03cd1)
|
|
|
|
|
|
|
|
| |
Make the comments consistent.
Also make the Perl example call $g->close explicitly so it is
consistent with the other examples.
(cherry picked from commit 27ebf517fae972eee49ae5911a03fabe5f4b6e54)
|
|
|
|
|
|
| |
This is now set by default in all supported versions of libguestfs.
It's just confusing if the examples refer to it.
(cherry picked from commit 917550a117904ec1a06b77a7870a147014d71adb)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Linux, sync(2) does not actually issue a write barrier, thus it
doesn't force a flush of the underlying hardware write cache (or
qemu's disk cache in the virtual case).
This can be a problem, because libguestfs relies on running sync in
the appliance, followed by killing qemu (using SIGTERM).
In most cases, this is fine, because killing qemu with SIGTERM should
cause it to flush out the disk cache before it exits. However we have
found various bugs in qemu which cause qemu to crash while doing the
flush, leaving the data unwritten (see RHBZ#836913).
The solution is to issue fsync(2) to the block devices. This has a
write barrier, so it ensures that qemu writes out its cache long
before we get around to killing qemu.
(cherry picked from commit c0a3c9ce70b98171e737e49e6dccc4457963f2ec)
|
|
|
|
|
| |
No functional change.
(cherry picked from commit cb24ceedd8a8ef7da71cfcce6db10669de47685c)
|
|
|
|
|
| |
This is just a comment and has no functional effect.
(cherry picked from commit 0437a7905619b8370e25fbae1a3e6388c5277be9)
|
|
|
|
|
|
|
| |
Note that qemu treats these identically, so this change has
no functional effect.
(cherry picked from commit 1608ca182b094a1dbe22094f39a5e86f18f728b7)
|
|
|
|
|
|
| |
systemd is playing a WTF game with udevd, moving it around and
renaming it unnecessarily in each release. Chase all known locations.
(cherry picked from commit 906f8e3ae24a084d9a70d33d84c0ce29bdafa79c)
|
|
|
|
| |
(cherry picked from commit 100271c7bc00a1f9baacd8c56b43e156b736fc12)
|
|
|
|
| |
(cherry picked from commit 5489304c8d2836713ec58051c24514eba22b8c94)
|
|
|
|
|
|
|
|
|
|
|
| |
Replace:
cp tests/guests/fedora.img test.img
with the longer but possibly more space-efficient equivalent:
qemu-img create -F raw -b tests/guests/fedora.img -f qcow2 test.qcow2
(cherry picked from commit 339f3647f889424af2a2256c4fcad0b44982c275)
|
|
|
|
|
|
| |
If the partition name we're about to return doesn't really exist,
then don't perform the mapping.
(cherry picked from commit ea8421c5d297698856a87c2cfe4a6b42796175a8)
|
|
|
|
|
|
|
|
|
| |
See https://bugzilla.redhat.com/show_bug.cgi?id=836573#c3
for an explanation.
Useful function 'is_partition' shows how to tell if a device name
represents a partition.
(cherry picked from commit 7eaa99994ebd354f4b078d4068695984989a907f)
|
|
|
|
|
|
|
|
| |
This returns the number of whole block devices added. It is usually
simpler to call this than to list the devices and count them, which
is what we do in some places in the current codebase.
(cherry picked from commit 152b179a19e43fcb0baec65ea65d394ee1dba891)
|
|
|
|
|
|
|
|
| |
This returns the index of the device, eg. /dev/sdb => 1.
Or you can think of it as the order that the device was
added, or the index of the device in guestfs_list_devices.
(cherry picked from commit a9d7d044f552855a7ef78d953c0c2672e35bfc80)
|
|
|
|
|
|
|
| |
This is mostly code motion, although it also fixes a memory leak in an
extremely rare failure case, and it generally tidies up the existing
code.
(cherry picked from commit 47b8225b05a7e35411f954f61f3eb3115c5a9f45)
|
|
|
|
|
|
|
|
|
|
| |
On Debian, the Ruby C extensions library isn't '-lruby', it's
something like '-lruby1.8' or '-lruby-1.9.1' and these can even be
parallel-installed.
Fix detection so we use Ruby's own rbconfig.rb file to find the right
library to use.
(cherry picked from commit cba49169094f04dead9b165b6b5991afa92132ff)
|
|
|
|
|
| |
No functional change.
(cherry picked from commit b07d0968823d008776345a1c724713d2320e1571)
|
|
|
|
| |
(cherry picked from commit b9f858e5eefa0d2abae5ff0a61a39b0d34334bc1)
|
|
|
|
|
|
| |
No functional change.
(cherry picked from commit 2d56e5af900662ea0a13e9e8ea4a802609214ecc)
|
| |
|
|
|
|
| |
(cherry picked from commit 1d17a6e9d8f434f952f3c171b5a81ca6b916fa1f)
|
|
|
|
|
|
|
|
| |
On RHEL 5, because _GNU_SOURCE was not defined, open_memstream was not
being declared, resulting in miscompilation and a segfault in the
trace code whenever open_memstream returned a pointer >= 0x80000000
(which would be truncated to a 32 bit int and then sign-extended).
(cherry picked from commit 6777425636d1c04494e52c61dc44f523458d12d3)
|
|
|
|
|
|
|
|
|
|
| |
When libguestfs calls 'error (g, "error")', gjs in F17 throws
error.message == "Error invoking Guestfs.test0rinterr: error"
In F18, error.message is simply the string "error".
Fix the test so it works for both cases.
(cherry picked from commit 6afb7336e33dc28c4fd1a4545a8298ee36c10723)
|
|
|
|
| |
(cherry picked from commit bbb7d75c91450ab029edb794b0486eeb8220e4fd)
|
|
|
|
|
| |
FUSE is not very reliable on RHEL 5.
(cherry picked from commit 0977c8408a1119c0582e3d2ab6edef23a1f1f22e)
|
|
|
|
| |
(cherry picked from commit 8d88b06277c1d6d7a26b9434cc69a7bae9ada7fc)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The stdin and stdout of the qemu process are aliased to g->fd:
g->fd[0] = wfd[1];
g->fd[1] = rfd[0];
However if the child exits early, then child_cleanup closes g->fd[0],
g->fd[1], AND the code at the cleanup1 label closes wfd[1], rfd[0],
resulting in a double-close.
Avoid this case by setting wfd[1], rfd[0] to -1. In the cleanup1
label, only close wfd[1], rfd[0] if they are not -1, and add the same
for g->fd[0], g->fd[1].
(cherry picked from commit c87956837e962072fff61edef5b18e55ad42d730)
|
|
|
|
| |
(cherry picked from commit 9e221e55b61e9f1cd0caf292ca609a4ca26f1d4d)
|
|
|
|
|
| |
This fixes commit ef5c02c6ee72eb8e127115923951777a2c2b8480.
(cherry picked from commit 11317b5d1243f3afc35f7abe8edc646f75813e36)
|
|
|
|
| |
(cherry picked from commit ef5c02c6ee72eb8e127115923951777a2c2b8480)
|
|
|
|
| |
(cherry picked from commit 90d0beb3c528d91029349b64d0159836c776189b)
|
|
|
|
|
|
| |
The program doesn't actually require FUSE when used without
any --script options.
(cherry picked from commit 8fc2127975de2f364e348c5a558d78e77988953c)
|
|
|
|
|
| |
The test uses FUSE, so we need a way to disable it on RHEL 5.
(cherry picked from commit f27770e1412c0dbe652d490791347911aac62b24)
|