qcow2: Restore total_sectors value in save_vmstate
authorMax Reitz <mreitz@redhat.com>
Sun, 20 Oct 2013 18:28:20 +0000 (20:28 +0200)
committerKevin Wolf <kwolf@redhat.com>
Thu, 24 Oct 2013 09:45:06 +0000 (11:45 +0200)
commiteedff66f21e542650d895801549ce05ac108278b
tree1462ef8058954cd040fe8d16218da99445a66af9
parentcc94712b9ec93d1301eea1fb8f1b08589c7e242e
qcow2: Restore total_sectors value in save_vmstate

Since df2a6f29a5, bdrv_co_do_writev increases the total_sectors value of
a growable block devices on writes after the current end. This leads to
the virtual disk apparently growing in qcow2_save_vmstate, which in turn
affects the disk size captured by the internal snapshot taken directly
afterwards through e.g. the HMP savevm command. Such a "grown" snapshot
cannot be loaded after reopening the qcow2 image, since its disk size
differs from the actual virtual disk size (writing a VM state does not
actually increase the virtual disk size).

Fix this by restoring total_sectors at the end of qcow2_save_vmstate.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/qcow2.c