Add bdrv_flush_all()
This patch adds a bdrv_flush_all() function. It's necessary to ensure that all IO operations have been flushed to disk before completely a live migration. N.B. we don't actually use this now. We really should flush the block drivers using an live savevm callback to avoid unnecessary guest down time. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5432 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
d8f4460989
commit
c6ca28d636
10
block.c
10
block.c
@ -895,6 +895,16 @@ void bdrv_flush(BlockDriverState *bs)
|
|||||||
bdrv_flush(bs->backing_hd);
|
bdrv_flush(bs->backing_hd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void bdrv_flush_all(void)
|
||||||
|
{
|
||||||
|
BlockDriverState *bs;
|
||||||
|
|
||||||
|
for (bs = bdrv_first; bs != NULL; bs = bs->next)
|
||||||
|
if (bs->drv && !bdrv_is_read_only(bs) &&
|
||||||
|
(!bdrv_is_removable(bs) || bdrv_is_inserted(bs)))
|
||||||
|
bdrv_flush(bs);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns true iff the specified sector is present in the disk image. Drivers
|
* Returns true iff the specified sector is present in the disk image. Drivers
|
||||||
* not implementing the functionality are assumed to not support backing files,
|
* not implementing the functionality are assumed to not support backing files,
|
||||||
|
2
block.h
2
block.h
@ -93,6 +93,8 @@ int qemu_key_check(BlockDriverState *bs, const char *name);
|
|||||||
|
|
||||||
/* Ensure contents are flushed to disk. */
|
/* Ensure contents are flushed to disk. */
|
||||||
void bdrv_flush(BlockDriverState *bs);
|
void bdrv_flush(BlockDriverState *bs);
|
||||||
|
void bdrv_flush_all(void);
|
||||||
|
|
||||||
int bdrv_is_allocated(BlockDriverState *bs, int64_t sector_num, int nb_sectors,
|
int bdrv_is_allocated(BlockDriverState *bs, int64_t sector_num, int nb_sectors,
|
||||||
int *pnum);
|
int *pnum);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user