From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56035) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdHXP-0006kI-NN for qemu-devel@nongnu.org; Mon, 04 Nov 2013 05:37:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VdHXJ-0007MJ-Ni for qemu-devel@nongnu.org; Mon, 04 Nov 2013 05:37:39 -0500 Received: from mx1.redhat.com ([209.132.183.28]:29911) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdHXJ-0007MF-Eb for qemu-devel@nongnu.org; Mon, 04 Nov 2013 05:37:33 -0500 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rA4AbWOc024101 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 4 Nov 2013 05:37:32 -0500 Message-ID: <527778E9.6000907@redhat.com> Date: Mon, 04 Nov 2013 11:37:29 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1383557410-18062-1-git-send-email-famz@redhat.com> In-Reply-To: <1383557410-18062-1-git-send-email-famz@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2] block: per caller dirty bitmap List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com Il 04/11/2013 10:30, Fam Zheng ha scritto: > diff --git a/include/block/block.h b/include/block/block.h > index 3560deb..06f424c 100644 > --- a/include/block/block.h > +++ b/include/block/block.h > @@ -388,12 +388,15 @@ void *qemu_blockalign(BlockDriverState *bs, size_t size); > bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov); > > struct HBitmapIter; > -void bdrv_set_dirty_tracking(BlockDriverState *bs, int granularity); > -int bdrv_get_dirty(BlockDriverState *bs, int64_t sector); > +typedef struct BdrvDirtyBitmap BdrvDirtyBitmap; > +BdrvDirtyBitmap *bdrv_create_dirty_bitmap(BlockDriverState *bs, int granularity); > +void bdrv_release_dirty_bitmap(BlockDriverState *bs, BdrvDirtyBitmap *bitmap); > +int bdrv_get_dirty(BlockDriverState *bs, BdrvDirtyBitmap *bitmap, int64_t sector); > void bdrv_set_dirty(BlockDriverState *bs, int64_t cur_sector, int nr_sectors); > void bdrv_reset_dirty(BlockDriverState *bs, int64_t cur_sector, int nr_sectors); > -void bdrv_dirty_iter_init(BlockDriverState *bs, struct HBitmapIter *hbi); > -int64_t bdrv_get_dirty_count(BlockDriverState *bs); > +void bdrv_dirty_iter_init(BlockDriverState *bs, > + BdrvDirtyBitmap *bitmap, struct HBitmapIter *hbi); > +int64_t bdrv_get_dirty_count(BlockDriverState *bs, BdrvDirtyBitmap *bitmap); > > void bdrv_enable_copy_on_read(BlockDriverState *bs); > void bdrv_disable_copy_on_read(BlockDriverState *bs); You do not really need the BDS argument to the functions, do you? (Or do you have other plans?) Apart from this, looks good. Paolo