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"

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 fi

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 no

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 trac

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 'o

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 > > 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 da

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 > > > > 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

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 > > 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 da

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) { assert

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 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:

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, F

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

2013-06-12 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: > >>

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

2013-06-12 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 int

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

2013-06-12 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 backup_before_write_no

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 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-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; > > + > > +

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); >

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

2013-05-30 Thread Stefan Hajnoczi
From: Dietmar Maurer 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 overwritten. The data is then