Now that the file migration doesn't require us to use 'dd' and other
legacy stuff for too old qemus we don't even have to calcuate the
offsets and other stuff.
---
src/qemu/qemu_driver.c | 30 ++----------------------------
src/qemu/qemu_monitor.h | 10 ----------
2 files changed, 2 insertions(+), 38 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 77f4baa..2ca6700 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3128,38 +3128,13 @@ qemuDomainSaveMemory(virQEMUDriverPtr driver,
int directFlag = 0;
virFileWrapperFdPtr wrapperFd = NULL;
unsigned int wrapperFlags = VIR_FILE_WRAPPER_NON_BLOCKING;
- unsigned long long pad;
- unsigned long long offset;
- size_t len;
- char *xml = NULL;
memset(&header, 0, sizeof(header));
memcpy(header.magic, QEMU_SAVE_PARTIAL, sizeof(header.magic));
header.version = QEMU_SAVE_VERSION;
header.was_running = was_running ? 1 : 0;
-
header.compressed = compressed;
-
- len = strlen(domXML) + 1;
- offset = sizeof(header) + len;
-
- /* Due to way we append QEMU state on our header with dd,
- * we need to ensure there's a 512 byte boundary. Unfortunately
- * we don't have an explicit offset in the header, so we fake
- * it by padding the XML string with NUL bytes. Additionally,
- * we want to ensure that virDomainSaveImageDefineXML can supply
- * slightly larger XML, so we add a minimum padding prior to
- * rounding out to page boundaries.
- */
- pad = 1024;
- pad += (QEMU_MONITOR_MIGRATE_TO_FILE_BS -
- ((offset + pad) % QEMU_MONITOR_MIGRATE_TO_FILE_BS));
- if (VIR_ALLOC_N(xml, len + pad) < 0)
- goto cleanup;
- strcpy(xml, domXML);
-
- offset += pad;
- header.xml_len = len;
+ header.xml_len = strlen(domXML) + 1;
/* Obtain the file handle. */
if ((flags & VIR_DOMAIN_SAVE_BYPASS_CACHE)) {
@@ -3184,7 +3159,7 @@ qemuDomainSaveMemory(virQEMUDriverPtr driver,
goto cleanup;
/* Write header to file, followed by XML */
- if (qemuDomainSaveHeader(fd, path, xml, &header) < 0)
+ if (qemuDomainSaveHeader(fd, path, domXML, &header) < 0)
goto cleanup;
/* Perform the migration */
@@ -3226,7 +3201,6 @@ qemuDomainSaveMemory(virQEMUDriverPtr driver,
cleanup:
VIR_FORCE_CLOSE(fd);
virFileWrapperFdFree(wrapperFd);
- VIR_FREE(xml);
if (ret < 0 && needUnlink)
unlink(path);
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index d731344..134cbb6 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -560,16 +560,6 @@ int qemuMonitorMigrateToCommand(qemuMonitorPtr mon,
unsigned int flags,
const char * const *argv);
-/* In general, BS is the smallest fundamental block size we can use to
- * access a block device; everything must be aligned to a multiple of
- * this. Linux generally supports a BS as small as 512, but with
- * newer disks with 4k sectors, performance is better if we guarantee
- * alignment to the sector size. However, operating on BS-sized
- * blocks is painfully slow, so we also have a transfer size that is
- * larger but only aligned to the smaller block size.
- */
-# define QEMU_MONITOR_MIGRATE_TO_FILE_BS (1024llu * 4)
-
int qemuMonitorMigrateToUnix(qemuMonitorPtr mon,
unsigned int flags,
const char *unixfile);
--
2.6.2