提交 c4ccb0d0 编写于 作者: D Daniel P. Berrangé

qemu: re-add padding to the saved state images

In the past we added 1024 bytes of padding to saved state images so that
users can run "virsh managedsave-edit $GUEST" and make XML changes which
increase the size of the XML document. This padding was accidentally
lost a while back

  commit 6b9b21db
  Author: Peter Krempa <pkrempa@redhat.com>
  Date:   Wed Feb 17 13:10:11 2016 +0100

    qemu: Remove unnecessary calculations in qemuDomainSaveMemory

The original 1024 bytes was unreasonably stingy when we consider that
the QEMU state is typically going to be many 100's of MB in size. Thus
this adds 64 KB of padding after the XML which should cope with any
plausible modifications a user will want to make.

  https://bugzilla.redhat.com/show_bug.cgi?id=1229255Reviewed-by: NEric Blake <eblake@redhat.com>
Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
上级 856587ea
...@@ -2922,20 +2922,23 @@ virQEMUSaveDataWrite(virQEMUSaveDataPtr data, ...@@ -2922,20 +2922,23 @@ virQEMUSaveDataWrite(virQEMUSaveDataPtr data,
len = xml_len + cookie_len; len = xml_len + cookie_len;
if (header->data_len > 0) { if (header->data_len == 0) {
/* This 64kb padding allows the user to edit the XML in
* a saved state image and have the new XML be larger
* that what was originally saved
*/
header->data_len = len + (64 * 1024);
} else {
if (len > header->data_len) { if (len > header->data_len) {
virReportError(VIR_ERR_OPERATION_FAILED, "%s", virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("new xml too large to fit in file")); _("new xml too large to fit in file"));
return -1; return -1;
} }
zerosLen = header->data_len - len;
if (VIR_ALLOC_N(zeros, zerosLen) < 0)
return -1;
} else {
header->data_len = len;
} }
zerosLen = header->data_len - len;
zeros = g_new0(char, zerosLen);
if (data->cookie) if (data->cookie)
header->cookieOffset = xml_len; header->cookieOffset = xml_len;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册