Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-20 Thread Stefan Hajnoczi
On Wed, Jun 19, 2013 at 01:14:17PM +0200, Paolo Bonzini wrote: Il 19/06/2013 12:50, Kevin Wolf ha scritto: +/* Publish progress */ +job-sectors_read += n; +job-common.offset += n * BDRV_SECTOR_SIZE; This is interesting, because the function is not only called by

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-20 Thread Stefan Hajnoczi
On Wed, Jun 19, 2013 at 01:19:34PM +0200, Paolo Bonzini wrote: Il 19/06/2013 12:50, Kevin Wolf ha scritto: + +DPRINTF(%s enter %s C% PRId64 % PRId64 %d\n, +__func__, bdrv_get_device_name(bs), start, sector_num, nb_sectors); Maybe put the first %s and __func__

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-20 Thread Stefan Hajnoczi
On Wed, Jun 19, 2013 at 12:50:16PM +0200, Kevin Wolf wrote: Am 30.05.2013 um 14:34 hat Stefan Hajnoczi geschrieben: +DPRINTF(%s enter %s C% PRId64 % PRId64 %d\n, +__func__, bdrv_get_device_name(bs), start, sector_num, nb_sectors); Maybe put the first %s and __func__

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-19 Thread Stefan Hajnoczi
On Tue, Jun 18, 2013 at 04:52:11PM +0200, Kevin Wolf wrote: Am 30.05.2013 um 14:34 hat Stefan Hajnoczi geschrieben: From: Dietmar Maurer diet...@proxmox.com backup_start() creates a block job that copies a point-in-time snapshot of a block device to a target block device. We call

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-19 Thread Kevin Wolf
Am 30.05.2013 um 14:34 hat Stefan Hajnoczi geschrieben: From: Dietmar Maurer diet...@proxmox.com backup_start() creates a block job that copies a point-in-time snapshot of a block device to a target block device. We call backup_do_cow() for each write during backup. That function reads

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-19 Thread Paolo Bonzini
Il 19/06/2013 12:50, Kevin Wolf ha scritto: +/* Publish progress */ +job-sectors_read += n; +job-common.offset += n * BDRV_SECTOR_SIZE; This is interesting, because the function is not only called by the background job, but also by write notifiers. So 'offset' in a

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-19 Thread Paolo Bonzini
Il 19/06/2013 12:50, Kevin Wolf ha scritto: + +DPRINTF(%s enter %s C% PRId64 % PRId64 %d\n, +__func__, bdrv_get_device_name(bs), start, sector_num, nb_sectors); Maybe put the first %s and __func__ directly into the DPRINTF macro? Or just use tracepoints.

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-18 Thread Kevin Wolf
Am 30.05.2013 um 14:34 hat Stefan Hajnoczi geschrieben: From: Dietmar Maurer diet...@proxmox.com backup_start() creates a block job that copies a point-in-time snapshot of a block device to a target block device. We call backup_do_cow() for each write during backup. That function reads

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-17 Thread Stefan Hajnoczi
On Mon, Jun 17, 2013 at 11:43:24AM +0800, Fam Zheng wrote: +bdrv_iostatus_disable(target); +bdrv_delete(job-target); drive-mirror has bdrv_close before deleting target, why don't we need one here? Use the source, Luke! :) void bdrv_delete(BlockDriverState *bs) {

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-16 Thread Fam Zheng
+static void coroutine_fn backup_run(void *opaque) +{ +BackupBlockJob *job = opaque; +BlockDriverState *bs = job-common.bs; +BlockDriverState *target = job-target; +BlockdevOnError on_target_error = job-on_target_error; +NotifierWithReturn before_write = { +

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-13 Thread Wenchao Xia
于 2013-6-7 15:18, Stefan Hajnoczi 写道: On Thu, Jun 06, 2013 at 04:56:49PM +0800, Fam Zheng wrote: On Thu, 06/06 10:05, Stefan Hajnoczi wrote: On Thu, Jun 06, 2013 at 11:56:18AM +0800, Fam Zheng wrote: On Thu, 05/30 14:34, Stefan Hajnoczi wrote: + +static int coroutine_fn

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-13 Thread Wenchao Xia
于 2013-6-13 14:03, Wenchao Xia 写道: 于 2013-6-7 15:18, Stefan Hajnoczi 写道: On Thu, Jun 06, 2013 at 04:56:49PM +0800, Fam Zheng wrote: On Thu, 06/06 10:05, Stefan Hajnoczi wrote: On Thu, Jun 06, 2013 at 11:56:18AM +0800, Fam Zheng wrote: On Thu, 05/30 14:34, Stefan Hajnoczi wrote: + +static

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-13 Thread Fam Zheng
On Thu, 06/13 14:07, Wenchao Xia wrote: 于 2013-6-13 14:03, Wenchao Xia 写道: 于 2013-6-7 15:18, Stefan Hajnoczi 写道: On Thu, Jun 06, 2013 at 04:56:49PM +0800, Fam Zheng wrote: On Thu, 06/06 10:05, Stefan Hajnoczi wrote: On Thu, Jun 06, 2013 at 11:56:18AM +0800, Fam Zheng wrote: On Thu, 05/30

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-13 Thread Wenchao Xia
于 2013-6-13 14:33, Fam Zheng 写道: On Thu, 06/13 14:07, Wenchao Xia wrote: 于 2013-6-13 14:03, Wenchao Xia 写道: 于 2013-6-7 15:18, Stefan Hajnoczi 写道: On Thu, Jun 06, 2013 at 04:56:49PM +0800, Fam Zheng wrote: On Thu, 06/06 10:05, Stefan Hajnoczi wrote: On Thu, Jun 06, 2013 at 11:56:18AM +0800,

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-13 Thread Stefan Hajnoczi
On Thu, Jun 13, 2013 at 02:33:40PM +0800, Fam Zheng wrote: On Thu, 06/13 14:07, Wenchao Xia wrote: 于 2013-6-13 14:03, Wenchao Xia 写道: 于 2013-6-7 15:18, Stefan Hajnoczi 写道: On Thu, Jun 06, 2013 at 04:56:49PM +0800, Fam Zheng wrote: On Thu, 06/06 10:05, Stefan Hajnoczi wrote: On Thu, Jun

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-07 Thread Stefan Hajnoczi
On Thu, Jun 06, 2013 at 04:56:49PM +0800, Fam Zheng wrote: On Thu, 06/06 10:05, Stefan Hajnoczi wrote: On Thu, Jun 06, 2013 at 11:56:18AM +0800, Fam Zheng wrote: On Thu, 05/30 14:34, Stefan Hajnoczi wrote: + +static int coroutine_fn backup_before_write_notify( +

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-06 Thread Stefan Hajnoczi
On Thu, Jun 06, 2013 at 11:56:18AM +0800, Fam Zheng wrote: On Thu, 05/30 14:34, Stefan Hajnoczi wrote: + +static int coroutine_fn backup_before_write_notify( +NotifierWithReturn *notifier, +void *opaque) +{ +BdrvTrackedRequest *req = opaque; + +return

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-06 Thread Fam Zheng
On Thu, 06/06 10:05, Stefan Hajnoczi wrote: On Thu, Jun 06, 2013 at 11:56:18AM +0800, Fam Zheng wrote: On Thu, 05/30 14:34, Stefan Hajnoczi wrote: + +static int coroutine_fn backup_before_write_notify( +NotifierWithReturn *notifier, +void *opaque) +{ +

Re: [Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-06-05 Thread Fam Zheng
On Thu, 05/30 14:34, Stefan Hajnoczi wrote: + +static int coroutine_fn backup_before_write_notify( +NotifierWithReturn *notifier, +void *opaque) +{ +BdrvTrackedRequest *req = opaque; + +return backup_do_cow(req-bs, req-sector_num, req-nb_sectors, NULL); +} I'm

[Qemu-devel] [PATCH v5 03/11] block: add basic backup support to block driver

2013-05-30 Thread Stefan Hajnoczi
From: Dietmar Maurer diet...@proxmox.com backup_start() creates a block job that copies a point-in-time snapshot of a block device to a target block device. We call backup_do_cow() for each write during backup. That function reads the original data from the block device before it gets