qemu-irix/include
Jeff Cody a375e0b03e block: set device_list.tqe_prev to NULL on BDS removal
This fixes a regression introduced with commit 3f09bfbc7.  Multiple
bugs arise in conjunction with live snapshots and mirroring operations
(which include active layer commit).

After a live snapshot occurs, the active layer and the base layer both
have a non-NULL tqe_prev field in the device_list, although the base
node's tqe_prev field points to a NULL entry.  This non-NULL tqe_prev
field occurs after the bdrv_append() in the external snapshot calls
change_parent_backing_link().

In change_parent_backing_link(), when the previous active layer is
removed from device_list, the device_list.tqe_prev pointer is not
set to NULL.

The operating scheme in the block layer is to indicate that a BDS belongs
in the bdrv_states device_list iff the device_list.tqe_prev pointer
is non-NULL.

This patch does two things:

1.) Introduces a new block layer helper bdrv_device_remove() to remove a
    BDS from the device_list, and
2.) uses that new API, which also fixes the regression once used in
    change_parent_backing_link().

Signed-off-by: Jeff Cody <jcody@redhat.com>
Message-id: 0cd51e11c0666c04ddb7c05293fe94afeb551e89.1454376655.git.jcody@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
(cherry picked from commit f8aa905a4f)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2016-03-17 16:51:48 -05:00
..
block block: set device_list.tqe_prev to NULL on BDS removal 2016-03-17 16:51:48 -05:00
crypto
disas
exec translate-all: ensure host page mask is always extended with 1's 2015-12-02 13:12:30 +01:00
fpu
hw sdhci: Sanitize "sdhci-pci" properties for future qomification 2015-12-07 17:13:10 +00:00
libdecnumber
migration Postcopy: Mark nohugepage before discard 2015-11-10 15:00:28 +01:00
monitor monitor/target-ppc: Define target_get_monitor_def 2015-11-12 14:53:36 +11:00
net vhost user: add rarp sending after live migration for legacy guest 2015-10-22 14:34:49 +03:00
qapi qjson: surprise, allocating 6 QObjects per token is expensive 2015-11-26 10:07:07 +01:00
qemu typedefs: Put them back into alphabetical order 2015-12-04 09:39:55 +03:00
qom qom: Update documentation comment of struct Object 2015-12-03 20:10:22 +01:00
standard-headers
sysemu oslib-win32: Change return type of function getpagesize 2015-11-30 06:47:02 +01:00
ui replay: recording of the user input 2015-11-06 10:16:03 +01:00
config.h
elf.h
glib-compat.h glib: add compatibility interface for g_hash_table_add() 2015-10-30 09:01:03 +01:00
qemu-common.h Move page_size_init earlier 2015-11-10 14:51:48 +01:00
qemu-io.h
qjson.h
trace-tcg.h
trace.h