block: New BdrvChildRole.activate() for blk_resume_after_migration()

Instead of manually calling blk_resume_after_migration() in migration
code after doing bdrv_invalidate_cache_all(), integrate the BlockBackend
activation with cache invalidation into a single function. This is
achieved with a new callback in BdrvChildRole that is called by
bdrv_invalidate_cache_all().

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Kevin Wolf 2017-05-04 18:52:37 +02:00
parent ace21a5875
commit 4417ab7adf
7 changed files with 44 additions and 43 deletions

View file

@ -473,6 +473,11 @@ struct BdrvChildRole {
void (*drained_begin)(BdrvChild *child);
void (*drained_end)(BdrvChild *child);
/* Notifies the parent that the child has been activated (e.g. when
* migration is completing) and it can start requesting permissions and
* doing I/O on it. */
void (*activate)(BdrvChild *child, Error **errp);
void (*attach)(BdrvChild *child);
void (*detach)(BdrvChild *child);
};