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
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__
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__
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
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
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
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.
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
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)
{
+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 = {
+
于 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
于 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
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
于 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,
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
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(
+
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
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)
+{
+
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
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
20 matches
Mail list logo