| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
| |
pclose can return > 0 when the status of the command was non-zero.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code modifies zero, zero-device, is-zero, is-zero-device.
zero and zero-device are modified so that if the blocks of the device
already contain zeroes, then we don't write zeroes. The reason for
this is to avoid unnecessarily making the underlying storage
non-sparse or (in the qcow2 case) growing it.
is-zero and is-zero-device are modified so that zero detection is
faster. This is a nice side effect of making the first change.
Since avoiding unnecessary zeroing involves reading the blocks before
writing them, whereas before we just blindly wrote, this can be
slower. As you can see from the tests below, in the case where the
disk is sparse, it actually turns out to be faster, because we avoid
allocating the underlying blocks.
However in the case where the disk is non-sparse and full of existing
data, it is much slower. There might be a case for an API flag to
adjust whether or not we perform the zero check. I did not add this
flag because it is unlikely that the caller would have enough
information to be able to set the flag correctly.
(Elapsed time in seconds)
Format Test case Before After
Raw Sparse 16.4 5.3
Preallocated zero 17.0 18.8
Preallocated random 16.0 41.3
Qcow2 preallocation=off 18.7 5.6
preallocation=metadata 17.4 5.8
The current code uses a fixed block size of 4K for reading and
writing. I also tried the same tests with a block size of 64K but it
didn't make any significant difference.
(Thanks to Federico Simoncelli for suggesting this change)
|
| |
|
|
|
|
| |
(RHBZ#729887).
|
|
|
|
|
| |
These commands allow you to manipulate the environment within
guestfish.
|
|
|
|
|
| |
Calls to these functions are generated, so there is no need to declare
the functions by hand.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
eg:
*stdin*:37: libguestfs: error: luks_close: Device lukstest is busy.
|
| |
|
|
|
|
| |
This also adds tests.
|
|
|
|
| |
And fix the code so it doesn't generate warnings.
|
|
|
|
| |
Also includes improvements to the OCaml documentation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Turn:
=item B<-a> | B<--all>
into:
=item B<-a>
=item B<--all>
This gives a more natural-looking manual page, as well as making it
easier to directly link to these sections.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This allows long transfers (FileIn and FileOut operations) to be
cancelled by calling the signal and thread safe guestfs_user_cancel
function.
Most of this commit consists of a multithreaded program that tests
user cancellation of uploads and downloads.
|
|
|
|
|
|
|
|
|
|
|
| |
If the pgroup flag is set in the handle, then the qemu and recovery
subprocesses are placed in separate process groups. The default is
false.
The purpose for setting up a process group is that ^C will not be
passed from the main process down to these processes (killing them).
This allows ^C and other keyboard events to be caught and handled in
the main process.
|
| |
|
|
|
|
| |
Append content to the end of a file.
|
|
|
|
| |
This resizes a btrfs filesystem.
|
|
|
|
|
|
| |
This is a more comprehensive fix for RHBZ#685009. Add a new API which
allows the --force flag to be passed, allowing multiple NTFS resize
operations in a single session.
|
| |
|
|
|
|
| |
List device mapper devices.
|
|
|
|
|
|
|
| |
Although vg-activate and vg-activate-all do make /dev/mapper/VG-LV
devices internally, we always prefer to use the /dev/VG/LV format and
we return this format where possible. Therefore don't mention
/dev/mapper in this documentation.
|
|
|
|
|
|
| |
If the action doesn't take optional arguments, nevertheless force the
optargs_bitmask field in the header to be passed as 0, and give an
error if not.
|
| |
|
| |
|
|
|
|
|
|
| |
For optional arguments, you can now specify empty string to mean no
argument, except for String optional arguments where you must use
"NOARG" (empty string meaning a supplied empty string argument).
|
|
|
|
|
|
|
| |
This is needed because older versions of grub(for example in centos)
do not understand filesystems created with newer version of e2fsprogs.
By default in e2fsprogs 1.4+ creates partitions with 256 bit inode
size, and grub expect 128 bit size.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This API returns the guest's favicon if found, else an icon
representing the guest operating system. Currently supported by this
patch: Fedora, RHEL and derivatives, Debian (but not Ubuntu),
Windows XP, Windows 7.
This also updates virt-inspector to include an <icon> element
containing the icon in base64 encoding.
|
|
|
|
|
|
|
|
|
|
| |
No current function returns RBufferOut and has optional args. Such
functions would be generated incorrectly.
RBufferOut implies a silent "size_t *size_r" argument is added after
the regular arguments and before the optional arguments. Various
changes to the code generator need to be made to take this into
account.
|
|
|
|
|
|
|
| |
This is a fairly pointless note/warning since (a) you can't use the
API if you don't pass a root device string and (b) the code gives you
a good error message if you pass something that is not a root device
string.
|
| |
|
|
|
|
| |
The updated patch makes 'options' into an optional parameter.
|
| |
|
|
|
|
|
|
|
| |
Empty lists returned by RStringList and RHashtable functions
were incorrectly printed as [""].
Fix this so they are printed as [] instead.
|
|
|
|
|
|
|
| |
Before gcc 4.5, the deprecated option did not take the optional string
argument (see [1]). This caused compilation to fail with gcc < 4.5.
[1] http://gcc.gnu.org/gcc-4.5/changes.html
|
|
|
|
|
|
|
| |
In util-linux <= 2.19, mkswap -U cannot handle the first byte of the
UUID being zero, so we artificially rewrite such UUIDs.
See: http://article.gmane.org/gmane.linux.utilities.util-linux-ng/4273
|
|
|
|
| |
See: https://bugzilla.redhat.com/show_bug.cgi?id=705499
|
| |
|
|
|
|
|
| |
And therefore practically it cannot be part of the ABI since
the output of file(1) itself changes from time to time.
|