- 20 7月, 2017 2 次提交
-
-
由 Peter Krempa 提交于
When copying to a block device, the block device will already exist. To allow users using a block device without any preparation, they need to use the block copy without VIR_DOMAIN_BLOCK_COPY_REUSE_EXT. This means that if the target is an existing block device we don't need to prepare it, but we can't reject it as being existing. To avoid breaking this feature, explicitly assume that existing block devices will be reused even without that flag explicitly specified, while skipping attempts to create it. qemuMonitorDriveMirror still needs to honor the flag as specified by the user, since qemu overwrites the metadata otherwise.
-
由 Peter Krempa 提交于
Extract the presence of the flag into a boolean to simplify conditions and allow further manipulation of the state of the flag.
-
- 12 7月, 2017 1 次提交
-
-
由 John Ferlan 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1467826 Commit id 'b9b1aa63' was supposed to add logic to set the allocation for sparse files when wr_highest_offset was zero; however, an unconditional setting was done just prior. For block devices, this means allocation is always returning 0 since 'actual-size' will be zero. Remove the unconditional setting and add the note about it being possible to still be zero for block devices. As soon as the guest starts writing to the volume, the allocation value will then be obtainable from qemu via the wr_highest_offset.
-
- 11 7月, 2017 6 次提交
-
-
由 Peter Krempa 提交于
The API documents that it peeks into the VM disk. We can't do that currently for non raw images so report an error.
-
由 Peter Krempa 提交于
Refactor the access to storage driver usage along with qemuDomainStorageFileInit which ensures that we access the file with correct DAC uid/gid.
-
由 Peter Krempa 提交于
Allow specifying offset to read an arbitrary position in the file. This warrants a rename to virStorageFileRead.
-
由 Peter Krempa 提交于
The helper methods for actually accessing the storage objects don't really belong to the main storage driver implementation file. Split them out.
-
由 Ján Tomko 提交于
We have a temporary pointer to the currently processed parameter. Use it to save three bytes per use.
-
由 Ján Tomko 提交于
We assign the unsigned long value of the currently processed parameter to a temporary value_ul variable. Use it consistently in all cases.
-
- 25 6月, 2017 1 次提交
-
-
由 John Ferlan 提交于
If a remote call fails during event registration (more than likely from a network failure or remote libvirtd restart timed just right), then when calling the virObjectEventStateDeregisterID we don't want to call the registered @freecb function because that breaks our contract that we would only call it after succesfully returning. If the @freecb routine were called, it could result in a double free from properly coded applications that free their opaque data on failure to register, as seen in the following details: Program terminated with signal 6, Aborted. #0 0x00007fc45cba15d7 in raise #1 0x00007fc45cba2cc8 in abort #2 0x00007fc45cbe12f7 in __libc_message #3 0x00007fc45cbe86d3 in _int_free #4 0x00007fc45d8d292c in PyDict_Fini #5 0x00007fc45d94f46a in Py_Finalize #6 0x00007fc45d960735 in Py_Main #7 0x00007fc45cb8daf5 in __libc_start_main #8 0x0000000000400721 in _start The double dereference of 'pyobj_cbData' is triggered in the following way: (1) libvirt_virConnectDomainEventRegisterAny is invoked. (2) the event is successfully added to the event callback list (virDomainEventStateRegisterClient in remoteConnectDomainEventRegisterAny returns 1 which means ok). (3) when function remoteConnectDomainEventRegisterAny is hit, network connection disconnected coincidently (or libvirtd is restarted) in the context of function 'call' then the connection is lost and the function 'call' failed, the branch virObjectEventStateDeregisterID is therefore taken. (4) 'pyobj_conn' is dereferenced the 1st time in libvirt_virConnectDomainEventFreeFunc. (5) 'pyobj_cbData' (refered to pyobj_conn) is dereferenced the 2nd time in libvirt_virConnectDomainEventRegisterAny. (6) the double free error is triggered. Resolve this by adding a @doFreeCb boolean in order to avoid calling the freeCb in virObjectEventStateDeregisterID for any remote call failure in a remoteConnect*EventRegister* API. For remoteConnect*EventDeregister* calls, the passed value would be true indicating they should run the freecb if it exists; whereas, it's false for the remote call failure path. Patch based on the investigation and initial patch posted by fangying <fangying1@huawei.com>.
-
- 20 6月, 2017 3 次提交
-
-
由 Peter Krempa 提交于
Commit 7456c4f5 introduced a regression by not reloading the backing chain of a disk after snapshot. The regression was caused as src->relPath was not set and thus the block commit code could not determine the relative path. This patch adds code that will load the backing store string if VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT and store it in the correct place when a snapshot is successfully completed. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1461303
-
由 Peter Krempa 提交于
Calls to qemuDomainDiskChainElementPrepare resets the original error, thus we need to save it in the cleanup path of qemuDomainBlockCommit.
-
由 Peter Krempa 提交于
Changing labelling of the images does not need to happen after setting the labeling and lock manager access. This saves the cleanup of the labeling if the relative path can't be determined.
-
- 14 6月, 2017 1 次提交
-
-
由 Jiri Denemark 提交于
Most places which want to check ABI stability for an active domain need to call this API rather than the original qemuDomainDefCheckABIStability. The only exception is in snapshots where we need to decide what to do depending on the saved image data. https://bugzilla.redhat.com/show_bug.cgi?id=1460952Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
- 13 6月, 2017 2 次提交
-
-
由 Jiri Denemark 提交于
Commit v3.4.0-44-gac793bd7 fixed a memory leak, but failed to return the special -3 value. Thus an attempt to start a domain with corrupted managed save file would removed the corrupted file and report "An error occurred, but the cause is unknown" instead of starting the domain from scratch. https://bugzilla.redhat.com/show_bug.cgi?id=1460962
-
由 Marc Hartmayer 提交于
Use ATTRIBUTE_FALLTHROUGH, introduced by commit 5d84f596, instead of comments to indicate that the fall through is an intentional behavior. Signed-off-by: NMarc Hartmayer <mhartmay@linux.vnet.ibm.com> Reviewed-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com> Reviewed-by: NBjoern Walk <bwalk@linux.vnet.ibm.com>
-
- 12 6月, 2017 1 次提交
-
-
由 Jie Wang 提交于
Exiting early through the cleanup path did result in 'mirror' being leaked.
-
- 07 6月, 2017 11 次提交
-
-
由 Jiri Denemark 提交于
If QEMU is new enough and we have the live updated CPU definition in either save or migration cookie, we can use it to enforce ABI. The original guest CPU from domain XML will be stored in private data. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Jiri Denemark 提交于
The destination host may not be able to start a domain using the live updated CPU definition because either libvirt or QEMU may not be new enough. Thus we need to send the original guest CPU definition. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Jiri Denemark 提交于
The following patches will add an actual content in the cookie and use the data when restoring a domain. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Jiri Denemark 提交于
The new structure encapsulates save image header and associated data (domain XML). Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Jiri Denemark 提交于
The function is now called virQEMUSaveDataWrite and it is now doing everything it needs to save both the save image header and domain XML to a file. Be it a new file or an existing file in which a user wants to change the domain XML. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Jiri Denemark 提交于
The function is supposed to update the save image header after a successful migration to the save image file. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Jiri Denemark 提交于
This is a preparation for creating a new virQEMUSaveData structure which will encapsulate all save image header data. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Jiri Denemark 提交于
Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Jiri Denemark 提交于
Since virQEMUSaveHeader will be followed by more than just domain XML, the old name would be confusing as it was designed to describe the length of all data following the save image header. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Jiri Denemark 提交于
This will be used later when a save cookie will become part of the snapshot XML using new driver specific parser/formatter functions. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Peter Krempa 提交于
Allow starting the block-copy job for a persistent domain if a user declares by using a flag that the job will not be recovered if the VM is switched off while the job is active. This allows to use the block-copy job with persistent VMs under the same conditions as would apply to transient domains.
-
- 05 6月, 2017 1 次提交
-
-
由 Michal Privoznik 提交于
While checking for ABI stability, drivers might pose additional checks that are not valid for general case. For instance, qemu driver might check some memory backing attributes because of how qemu works. But those attributes may work well in other drivers. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 02 6月, 2017 1 次提交
-
-
由 Peter Krempa 提交于
qemuDomainGetBlockInfo would error out if qemu did not report 'wr_highest_offset'. This usually does not happen, but can happen briefly during active layer block commit. There's no need to report the error, we can simply report that the disk is fully alocated at that point. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1452045
-
- 31 5月, 2017 1 次提交
-
-
由 Michal Privoznik 提交于
In 48d9e6cd and friends we've allowed users to back guest memory by a file inside the host. And in order to keep things manageable the memory_backing_dir variable was introduced to qemu.conf to specify the directory where the files are kept. However, libvirt's policy is that directories are created on domain startup if they don't exist. We've missed this one. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 25 5月, 2017 1 次提交
-
-
由 Peter Krempa 提交于
'param' contains the correct element from 'params'. If the group name would not be the first parameter libvirtd would crash. Introduced in c53bd25b. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1455510
-
- 24 5月, 2017 1 次提交
-
-
由 Peter Krempa 提交于
Setting the 'group_name' for a disk would falsely trigger a error path as in commit 4b57f765 we did not properly check the return value of VIR_STRDUP.
-
- 23 5月, 2017 1 次提交
-
-
由 Kothapally Madhu Pavan 提交于
priv and qemuCaps variables are not used anymore. Signed-off-by: NKothapally Madhu Pavan <kmp@linux.vnet.ibm.com>
-
- 17 5月, 2017 1 次提交
-
-
由 Peter Krempa 提交于
Since we allow active layer block commit the users are allowed to commit the top of the chain (e.g. vda) into the backing image. The API would not accept that parameter, as it tried to look up the image in the backing chain. Add the ability to use the top level image target name explicitly as the top image of the block commit operation. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1451394
-
- 10 5月, 2017 2 次提交
-
-
由 Peter Krempa 提交于
The function returns -errno on failure, not only -1.
-
由 Peter Krempa 提交于
The function is nontrivial to follow and has non-standard return values. Recent usage was buggy.
-
- 28 4月, 2017 1 次提交
-
-
由 Peter Krempa 提交于
Since commit c5f61513 qemuDomainBlockInfo tries to update the "physical" storage size for all network storage and not only block devices. Since the storage driver APIs to do this are not implemented for certain storage types (RBD, iSCSI, ...) the code would fail to retrieve any data since the failure of qemuDomainStorageUpdatePhysical is fatal. Since it's desired to return data even if the total size can't be updated we need to ignore errors from that function and return plausible data. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1442344
-
- 27 4月, 2017 2 次提交
-
-
由 Jiri Denemark 提交于
Not all async jobs are visible via virDomainGetJobStats (either they are too fast or getting the stats is not allowed during the job), but forcing all of them to advertise the operation is easier than hunting the jobs for which fetching statistics is allowed. And we won't need to think about this when we add support for getting stats for more jobs. https://bugzilla.redhat.com/show_bug.cgi?id=1441563Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
-
由 Nikolay Shirokovskiy 提交于
Becase it can be called during migration out (namely on cancelling blockjobs). Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
-