Go to file
aliguori 2d22b18f77 Fix handling of disk-only snapshots (Kevin Wolf)
When creating a snapshot with multiple qcow2 disks attached, the current
behaviour is that qemu creates a disk snapshot on all of them and
chooses one to write the VM state to.

Despite having the state only in one image, loadvm tries to restore the
VM state from the middle of nowhere if you run qemu a second time with
only one of the other images attached. In the lucky case it will fail
because there simply is no state, but it also can happen that it loads
the state of a different snapshot (the one this new one is based upon).

The fix is to write a zero VM state size to the images which don't
contain the state, and check this in loadvm.

I agree that you probably have to provoke such things intentionally to
get in a state like this with qemu itself. However, with my second patch
that adds snapshot support to qemu-img it could become a reasonable use
case to have snapshots with and without VM states on the same image.

Signed-off-by: Kevin Wolf <kwolf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5985 c046a42c-6fe2-441c-8c8c-71466251a162
2008-12-11 21:06:49 +00:00
audio Make audio violate POSIX less 2008-12-03 22:48:44 +00:00
bsd-user linux-user: Move abi_* typedefs into qemu-types.h 2008-12-08 18:12:04 +00:00
darwin-user Make target_sigaltstack_used static 2008-10-05 11:09:37 +00:00
fpu Add native softfloat fpu functions (Christoph Egger) 2008-11-22 20:17:37 +00:00
gdb-xml Add GDB XML register description support. 2008-10-11 17:55:29 +00:00
hw Rename fls to qemu_fls 2008-12-11 19:37:54 +00:00
keymaps fixing keymap for Windows keys (Stefano Stabellini) 2008-09-22 19:45:36 +00:00
linux-user Fix compiling without MREMAP_FIXED 2008-12-11 19:12:25 +00:00
pc-bios Update OpenBIOS images to SVN r237. 2008-09-18 19:41:28 +00:00
slirp slirp: fix CVE 2007-5729 2008-12-07 18:15:23 +00:00
target-alpha target-alpha: gdb-stub support 2008-12-07 23:26:32 +00:00
target-arm Remove FORCE_RET() and RETURN() 2008-12-07 18:15:54 +00:00
target-cris Remove FORCE_RET() and RETURN() 2008-12-07 18:15:54 +00:00
target-i386 Fix crash in kvm.c (Stefan Weil) 2008-12-11 21:03:10 +00:00
target-m68k Allocate cleared memory for cpu state. 2008-12-01 14:29:13 +00:00
target-mips MIPS: remove a few warnings 2008-12-07 23:26:24 +00:00
target-ppc target-ppc: enable SPE and Altivec in user mode 2008-12-10 15:02:33 +00:00
target-sh4 target-sh4: Add SH bit handling to TLB 2008-12-10 17:31:51 +00:00
target-sparc Add missing "static" 2008-12-11 17:29:00 +00:00
tcg Introduce and use cache-utils.[ch] 2008-12-10 19:18:40 +00:00
tests Implement SSE4.1, SSE4.2 (x86). 2008-10-04 03:27:44 +00:00
.gitignore Update .gitignore 2008-12-07 16:04:13 +00:00
a.out.h 64bit->win32 cross build fix. 2007-03-04 00:52:16 +00:00
aes.c Fix miscellaneous minor things, by Andre Przywara. 2007-12-17 03:15:52 +00:00
aes.h AES crypto support 2004-08-01 21:54:53 +00:00
aio.c Make sure to initialize fd_sets in aio.c 2008-10-12 21:19:57 +00:00
alpha-dis.c find -type f | xargs sed -i 's/[\t ]$//g' # on most files 2007-09-16 21:08:06 +00:00
alpha.ld alpha support 2003-04-29 20:53:42 +00:00
arm-dis.c Update ARM disassembler. 2007-11-10 17:38:00 +00:00
arm-semi.c Add missing return in arm-semi, by Laurent Desnogues. 2008-07-01 16:40:04 +00:00
arm.ld Link ARM prologue closer to code segment to avoid a build failure 2008-07-10 17:21:31 +00:00
balloon.h Add missing file from previous commit. 2008-12-04 20:35:16 +00:00
block_int.h Use an option rom instead of boot sector for -kernel 2008-11-08 16:27:07 +00:00
block-bochs.c Split block API from vl.h. 2007-11-11 02:51:17 +00:00
block-cloop.c Split block API from vl.h. 2007-11-11 02:51:17 +00:00
block-cow.c Split block API from vl.h. 2007-11-11 02:51:17 +00:00
block-dmg.c Add qemu_realloc(), by Gerd Hoffmann. 2008-08-06 08:37:17 +00:00
block-nbd.c Remove unnecessary #includes from block-nbd.c 2008-08-19 19:10:38 +00:00
block-parallels.c Split block API from vl.h. 2007-11-11 02:51:17 +00:00
block-qcow2.c Use writeback caching by default with qcow2 2008-12-04 21:39:21 +00:00
block-qcow.c Remove dead-code (else-block) from block-qcow.c, by Marc Bevand. 2008-06-05 22:00:45 +00:00
block-raw-posix.c block: make raw aio signaling non-blocking (Gerd Hoffman) 2008-11-13 19:23:17 +00:00
block-raw-win32.c Expand cache= option and use write-through caching by default 2008-10-14 14:42:54 +00:00
block-vmdk.c fix off-by-one generating vmdk backing files (Avi Kivity) 2008-10-28 14:08:49 +00:00
block-vpc.c Fix char* signedness, by Andre Przywara. 2007-12-16 03:16:05 +00:00
block-vvfat.c Use qemu_isfoobar and qemu_towombat versions, based on patch by Christoph Egger 2008-11-22 20:04:24 +00:00
block.c Attached patch contains warning fixes. 2008-12-05 17:56:40 +00:00
block.h Use writeback caching by default with qcow2 2008-12-04 21:39:21 +00:00
bswap.h Attached patch makes NetBSD use the native bswap functions 2008-12-05 17:54:09 +00:00
bt-host.c Win32: Fix warnings 2008-11-06 09:38:51 +00:00
bt-vhci.c Disable bluetooth proxy compilation on win32. 2008-09-30 23:31:35 +00:00
buffered_file.c Introduce a buffered file wrapper for QEMUFile 2008-10-13 03:10:22 +00:00
buffered_file.h Introduce a buffered file wrapper for QEMUFile 2008-10-13 03:10:22 +00:00
cache-utils.c Add lost semicolons 2008-12-11 19:20:41 +00:00
cache-utils.h Introduce and use cache-utils.[ch] 2008-12-10 19:18:40 +00:00
Changelog Update 2008-06-08 01:55:07 +00:00
check_ops.sh Fixes for s/390 host support, by Bastian Blank. 2007-11-18 21:22:10 +00:00
cocoa.m Let the USB tablet reach the far bottom and right pixels 2008-03-10 19:34:27 +00:00
configure Disable KVM support if the kernel modules have broken memory slot handling 2008-12-09 19:59:09 +00:00
console.c Introduce accessors for DisplayState (Stefano Stabellini) 2008-11-24 19:29:13 +00:00
console.h Introduce accessors for DisplayState (Stefano Stabellini) 2008-11-24 19:29:13 +00:00
COPYING COPYING: update from FSF 2008-10-12 17:54:42 +00:00
COPYING.LIB update 2003-05-25 16:41:52 +00:00
cpu-all.h Fix warnings introduced in r5948 2008-12-11 00:14:30 +00:00
cpu-defs.h Fix comment typo. 2008-11-29 13:33:23 +00:00
cpu-exec.c Attached patch make cpu-exec.c compile on NetBSD. 2008-12-05 17:55:45 +00:00
cris-dis.c Teach the CRIS disassembler to stay within the provided buffer. 2008-05-06 08:45:10 +00:00
curses_keys.h Control + i and [tab] share keycode in curses, simulate [tab]. 2008-10-28 00:11:06 +00:00
curses.c Reintroduce TEXT_CONSOLE_FIXED_SIZE and TEXT_CONSOLE for resizable vc's. 2008-09-24 03:32:33 +00:00
cutils.c Rename fls to qemu_fls 2008-12-11 19:37:54 +00:00
d3des.c Ansify to please sparse 2008-10-27 19:49:12 +00:00
d3des.h Actually add d3des implementation files. 2007-08-25 02:09:50 +00:00
def-helper.h TCG variable type checking. 2008-11-17 14:43:54 +00:00
dis-asm.h Fix OpenBSD linker warnings 2008-08-21 17:58:08 +00:00
disas.c Update old fashioned function prototypes. 2008-10-22 15:55:18 +00:00
disas.h * Use function pointers for symbol lookup (currently for elf32 and elf64, 2008-10-22 15:11:31 +00:00
dyngen-exec.h Remove FORCE_RET() and RETURN() 2008-12-07 18:15:54 +00:00
elf_ops.h Use load address when loading ELF images. 2008-10-22 18:20:20 +00:00
elf.h Fix most warnings that would be caused by gcc flag -Wundef 2008-09-06 17:47:39 +00:00
exec-all.h Some cleanups after dyngen removal 2008-12-07 18:15:45 +00:00
exec.c KVM: Coalesced MMIO support 2008-12-09 20:09:57 +00:00
feature_to_c.sh Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
gdbstub.c target-alpha: gdb-stub support 2008-12-07 23:26:32 +00:00
gdbstub.h gdbstub: manage CPUs as threads (Jan Kiszka) 2008-11-18 20:30:24 +00:00
gen-icount.h TCG variable type checking. 2008-11-17 14:43:54 +00:00
host-utils.c Code used by the linux-user targets should not use vl.h. 2007-11-05 13:01:41 +00:00
host-utils.h Include <strings.h> for ffs(). 2008-11-12 17:18:41 +00:00
hostregs_helper.h Some cleanups after dyngen removal 2008-12-07 20:35:00 +00:00
hpet.h Add a local copy of hpet.h. 2007-09-16 20:03:23 +00:00
hppa-dis.c HPPA (PA-RISC) host support 2008-04-12 20:14:54 +00:00
hppa.ld HPPA (PA-RISC) host support 2008-04-12 20:14:54 +00:00
i386-dis.c Make some i386 disassembler tables const 2008-10-02 18:29:22 +00:00
i386.ld Add TLS sections. 2008-05-31 16:21:33 +00:00
ia64.ld ia64 host support (David Mosberger) 2005-04-07 22:20:31 +00:00
keymaps.c Make keysym tables const 2008-10-02 18:26:42 +00:00
kqemu.c Fix error reporting under Win32 (CreateFile does not set errno) 2008-06-08 01:55:09 +00:00
kqemu.h kqemu API change - allow use of kqemu with 32 bit QEMU on a 64 bit host 2008-05-30 20:48:25 +00:00
kvm-all.c KVM: Coalesced MMIO support 2008-12-09 20:09:57 +00:00
kvm.h KVM: Coalesced MMIO support 2008-12-09 20:09:57 +00:00
LICENSE use the TCG code generator 2008-02-01 10:50:11 +00:00
loader.c uImage: only try to load 'kernel' images (Hollis Blanchard) 2008-11-20 22:15:46 +00:00
m68k-dis.c Spelling and grammar fixes 2008-11-30 16:25:37 +00:00
m68k-semi.c Break up vl.h. 2007-11-17 17:14:51 +00:00
m68k.ld m68k host port (Richard Zidlicky) 2003-08-10 22:14:22 +00:00
MAINTAINERS Update maintainers list. 2008-08-25 22:26:03 +00:00
Makefile Introduce and use cache-utils.[ch] 2008-12-10 19:18:40 +00:00
Makefile.target adlib.c includes fmopl.h and so needs -DBUILD_Y8950=0 too 2008-12-11 00:14:25 +00:00
migration-exec.c Fix brown-paper-bag bugs from live-migration patch (Charles Duffy) 2008-11-12 22:29:11 +00:00
migration-tcp.c Fix brown-paper-bag bugs from live-migration patch (Charles Duffy) 2008-11-12 22:29:11 +00:00
migration.c Reintroduce migrate-to-exec: support (Charles Duffy) 2008-11-11 16:46:33 +00:00
migration.h Reintroduce migrate-to-exec: support (Charles Duffy) 2008-11-11 16:46:33 +00:00
mips-dis.c Fix most warnings that would be caused by gcc flag -Wundef 2008-09-06 17:47:39 +00:00
mips.ld Linker scripts for MIPS hosts. 2007-05-05 19:24:38 +00:00
mipsel.ld Linker scripts for MIPS hosts. 2007-05-05 19:24:38 +00:00
monitor.c Accept password as an argument to 'change vnc password' monitor command (Chris Webb) 2008-12-10 15:14:13 +00:00
nbd.c Use qemu_isfoobar and qemu_towombat versions, based on patch by Christoph Egger 2008-11-22 20:04:24 +00:00
nbd.h qemu-nbd: remove useless parameter from nbd_negotiate() (Laurent Vivier) 2008-09-10 15:23:19 +00:00
net-checksum.c Add IP checksumming functions to qemu (Gerd Hoffmann) 2008-07-29 19:40:04 +00:00
net.c Fix some new warnings introduced after r5022 2008-12-07 19:30:18 +00:00
net.h Move network redirection code out of vl.c and into net.c 2008-10-31 19:10:00 +00:00
osdep.c Remove redundant #ifdef _BSD 2008-12-11 19:39:56 +00:00
osdep.h Fix a typo preventing GNUC builtins usage. 2008-12-01 01:53:55 +00:00
ppc64.ld Correct version of Heikki Lindholms ppc64.ld script 2008-08-20 22:39:24 +00:00
ppc-dis.c find -type f | xargs sed -i 's/[\t ]$//g' # on most files 2007-09-16 21:08:06 +00:00
ppc.ld Update ppc.ld to work with newer binutils. 2007-04-28 19:00:30 +00:00
qemu_socket.h sockets: helper functions for qemu (Gerd Hoffman) 2008-11-11 20:46:40 +00:00
qemu-aio.h Refactor AIO to allow multiple AIO implementations 2008-09-22 19:17:18 +00:00
qemu-binfmt-conf.sh Code provision for n32/n64 mips userland emulation. Not functional yet. 2007-09-30 01:58:33 +00:00
qemu-char.c Fix warning from sparse 2008-11-30 16:25:05 +00:00
qemu-char.h Move some declarations around in the QEMU CharDriver code 2008-10-31 18:44:40 +00:00
qemu-common.h Rename fls to qemu_fls 2008-12-11 19:37:54 +00:00
qemu-doc.texi Accept password as an argument to 'change vnc password' monitor command (Chris Webb) 2008-12-10 15:14:13 +00:00
qemu-img.c qemu-img: open files with cache=writeback 2008-11-30 19:12:49 +00:00
qemu-img.texi New qemu-img convert -B option, by Marc Bevand. 2008-06-05 21:53:49 +00:00
qemu-lock.h AIX's assembler does not support local labels, use relative addressing instead 2008-11-18 01:42:17 +00:00
qemu-log.h Fix some warnings that would be generated by gcc -Wredundant-decls 2008-08-30 09:51:20 +00:00
qemu-malloc.c Add qemu_strndup: qemu_strdup with length limit. 2008-11-09 00:28:40 +00:00
qemu-nbd.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
qemu-nbd.texi Fix formatting of documentation (Stefan Weil) 2008-09-22 20:41:57 +00:00
qemu-sockets.c Use qemu_isfoobar and qemu_towombat versions, based on patch by Christoph Egger 2008-11-22 20:04:24 +00:00
qemu-tech.texi Update (thanks to Edgar, Thiemo, malc, Paul, Laurent and Andrzej) 2008-10-09 18:52:04 +00:00
qemu-timer.h Break up vl.h. 2007-11-17 17:14:51 +00:00
qemu-tool.c Fix warning from sparse (wrong declaration) 2008-11-30 16:25:17 +00:00
readline.c Attached patch fixes a series of this warning 2008-11-16 13:53:32 +00:00
README update 2005-02-10 21:46:47 +00:00
s390-dis.c Revert licensing to "GPLv2 or later", by Ulrich Hecht. 2008-01-17 13:56:59 +00:00
s390.ld update 2003-04-29 21:34:02 +00:00
savevm.c Fix handling of disk-only snapshots (Kevin Wolf) 2008-12-11 21:06:49 +00:00
sdl_keysym.h Make keysym tables const 2008-10-02 18:26:42 +00:00
sdl.c add DisplayState->idle (Samuel Thibault) 2008-08-21 20:08:55 +00:00
sh4-dis.c Fix warnings that would be caused by gcc flag -Wwrite-strings 2008-09-14 06:45:34 +00:00
softmmu_defs.h Fix some warnings that would be generated by gcc -Wredundant-decls 2008-08-30 09:51:20 +00:00
softmmu_exec.h Fix some warnings that would be generated by gcc -Wredundant-decls 2008-08-30 09:51:20 +00:00
softmmu_header.h Fix some warnings that would be generated by gcc -Wredundant-decls 2008-08-30 09:51:20 +00:00
softmmu_template.h Set mem_io_vaddr on io_read (Jan Kiszka) 2008-11-18 20:09:43 +00:00
softmmu-semi.h Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
sparc64.ld Map code buffers below 2G on Sparc64 2008-07-26 15:05:57 +00:00
sparc-dis.c Update from binutils 2.17 2008-10-26 19:13:20 +00:00
sparc.ld More detabification 2007-10-06 11:28:21 +00:00
sys-queue.h Add TAILQ_FOREACH_SAFE (Jan Kiszka) 2008-11-25 22:05:37 +00:00
sysemu.h Add virtio-blk support 2008-12-04 19:52:44 +00:00
tap-win32.c Win32: Fix warnings 2008-11-06 09:38:51 +00:00
texi2pod.pl Update texi2pod.pl. 2008-02-04 14:47:49 +00:00
thunk.c Make bitmask tables static const 2008-10-05 10:51:10 +00:00
thunk.h Make bitmask tables static const 2008-10-05 10:51:10 +00:00
TODO Update 2008-12-04 11:29:42 +00:00
translate-all.c Some cleanups after dyngen removal 2008-12-07 20:35:00 +00:00
uboot_image.h Simple u-boot image loading support. 2007-03-06 23:52:01 +00:00
usb-bsd.c Attached patch contains warning fixes. 2008-12-05 17:56:40 +00:00
usb-linux.c Native BSD host USB support (Juergen Lock, Lonnie Mendez) 2008-11-22 21:03:55 +00:00
usb-stub.c Fix usb-stub compilation 2008-11-25 16:49:33 +00:00
VERSION version change 2008-01-06 17:10:54 +00:00
vgafont.h Some little fixes on QEMU 2008-09-06 16:31:30 +00:00
vl.c Introduce and use cache-utils.[ch] 2008-12-10 19:18:40 +00:00
vnc_keysym.h Make keysym tables const 2008-10-02 18:26:42 +00:00
vnc.c Make audio violate POSIX less 2008-12-03 22:48:44 +00:00
vnchextile.h Introduce accessors for DisplayState (Stefano Stabellini) 2008-11-24 19:29:13 +00:00
x86_64.ld update 2005-01-06 20:50:00 +00:00
x_keymap.c Add statics and missing #includes for prototypes. 2007-11-18 01:44:38 +00:00

Read the documentation in qemu-doc.html.

Fabrice Bellard.