On 2018-02-27 10:34, Fam Zheng wrote:
> On Mon, 01/22 23:08, Max Reitz wrote:
>> @@ -1151,7 +1285,48 @@ static int coroutine_fn
>> bdrv_mirror_top_preadv(BlockDriverState *bs,
>> static int coroutine_fn bdrv_mirror_top_pwritev(BlockDriverState *bs,
>> uint64_t offset, uint64_t bytes, QEMUIOV
On 02/27/2018 03:34 AM, Fam Zheng wrote:
On Mon, 01/22 23:08, Max Reitz wrote:
@@ -1151,7 +1285,48 @@ static int coroutine_fn
bdrv_mirror_top_preadv(BlockDriverState *bs,
static int coroutine_fn bdrv_mirror_top_pwritev(BlockDriverState *bs,
uint64_t offset, uint64_t bytes, QEMUIOVector
On Mon, 01/22 23:08, Max Reitz wrote:
> @@ -1151,7 +1285,48 @@ static int coroutine_fn
> bdrv_mirror_top_preadv(BlockDriverState *bs,
> static int coroutine_fn bdrv_mirror_top_pwritev(BlockDriverState *bs,
> uint64_t offset, uint64_t bytes, QEMUIOVector *qiov, int flags)
> {
> -return b
This patch implements active synchronous mirroring. In active mode, the
passive mechanism will still be in place and is used to copy all
initially dirty clusters off the source disk; but every write request
will write data both to the source and the target disk, so the source
cannot be dirtied fas