From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58157) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SfY7d-0004fy-8a for qemu-devel@nongnu.org; Fri, 15 Jun 2012 11:07:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SfY7X-0005Aj-PP for qemu-devel@nongnu.org; Fri, 15 Jun 2012 11:07:36 -0400 Received: from mail-pz0-f45.google.com ([209.85.210.45]:49781) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SfY7X-0004fx-GA for qemu-devel@nongnu.org; Fri, 15 Jun 2012 11:07:31 -0400 Received: by mail-pz0-f45.google.com with SMTP id n2so3246681dad.4 for ; Fri, 15 Jun 2012 08:07:30 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Fri, 15 Jun 2012 17:05:47 +0200 Message-Id: <1339772759-31004-25-git-send-email-pbonzini@redhat.com> In-Reply-To: <1339772759-31004-1-git-send-email-pbonzini@redhat.com> References: <1339772759-31004-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [RFC PATCH 24/36] mirror: support querying target file List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, stefanha@linux.vnet.ibm.com, lcapitulino@redhat.com This lets query-block-jobs retrieve information and statistics on the mirroring target. Signed-off-by: Paolo Bonzini --- block/mirror.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/block/mirror.c b/block/mirror.c index 1ed19a9..4c1582d 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -201,10 +201,21 @@ static void mirror_set_speed(BlockJob *job, int64_t speed, Error **errp) ratelimit_set_speed(&s->limit, speed / BDRV_SECTOR_SIZE, SLICE_TIME); } +static void mirror_query(BlockJob *job, BlockJobInfo *info) +{ + MirrorBlockJob *s = container_of(job, MirrorBlockJob, common); + + info->has_target = true; + info->target = g_new0(BlockJobTargetInfo, 1); + info->target->info = bdrv_query_info(s->target); + info->target->stats = bdrv_query_stats(s->target); +} + static BlockJobType mirror_job_type = { .instance_size = sizeof(MirrorBlockJob), .job_type = "mirror", .set_speed = mirror_set_speed, + .query = mirror_query, }; void mirror_start(BlockDriverState *bs, BlockDriverState *target, -- 1.7.10.2