]> git.proxmox.com Git - mirror_qemu.git/commit
block: drop bs_snapshots global variable
authorStefan Hajnoczi <stefanha@redhat.com>
Sat, 25 May 2013 03:09:42 +0000 (11:09 +0800)
committerKevin Wolf <kwolf@redhat.com>
Tue, 4 Jun 2013 11:56:29 +0000 (13:56 +0200)
commit29d782710f87f01991bfc85cd9bef7d15280a5e2
tree87fce82d0ff664d7f06e23e3f66a9276c5fc58dd
parent2499a096a2427f0a5c71750c9f79cf2d2d2d60f4
block: drop bs_snapshots global variable

The bs_snapshots global variable points to the BlockDriverState which
will be used to save vmstate.  This is really a savevm.c concept but was
moved into block.c:bdrv_snapshots() when it became clear that hotplug
could result in a dangling pointer.

While auditing the block layer's global state I came upon bs_snapshots
and realized that a variable is not necessary here.  Simply find the
first BlockDriverState capable of internal snapshots each time this is
needed.

The behavior of bdrv_snapshots() is preserved across hotplug because new
drives are always appended to the bdrv_states list.  This means that
calling the new find_vmstate_bs() function is idempotent - it returns
the same BlockDriverState unless it was hot-unplugged.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c
include/block/block.h
savevm.c