From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45578) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WMchv-0007jA-1k for qemu-devel@nongnu.org; Sun, 09 Mar 2014 08:20:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WMchq-0000R2-0c for qemu-devel@nongnu.org; Sun, 09 Mar 2014 08:19:54 -0400 Received: from lnantes-156-75-100-125.w80-12.abo.wanadoo.fr ([80.12.84.125]:55949 helo=paradis.irqsave.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WMchp-0000Qv-QW for qemu-devel@nongnu.org; Sun, 09 Mar 2014 08:19:49 -0400 Date: Sun, 9 Mar 2014 13:19:49 +0100 From: =?iso-8859-1?Q?Beno=EEt?= Canet Message-ID: <20140309121949.GD3307@irqsave.net> References: <1394232956-27852-1-git-send-email-mreitz@redhat.com> <1394232956-27852-7-git-send-email-mreitz@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1394232956-27852-7-git-send-email-mreitz@redhat.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v2 06/12] block/json: Add functions for writing zeroes etc. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Reitz Cc: Kevin Wolf , =?iso-8859-1?Q?Beno=EEt?= Canet , qemu-devel@nongnu.org, Stefan Hajnoczi The Friday 07 Mar 2014 =E0 23:55:50 (+0100), Max Reitz wrote : > Add passthrough functions for bdrv_aio_discard(), > bdrv_co_write_zeroes(), bdrv_truncate() and bdrv_has_zero_init(). >=20 > Signed-off-by: Max Reitz > --- > block/json.c | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) >=20 > diff --git a/block/json.c b/block/json.c > index f40343e..e4cdb68 100644 > --- a/block/json.c > +++ b/block/json.c > @@ -95,6 +95,21 @@ static BlockDriverAIOCB *json_aio_flush(BlockDriverS= tate *bs, > return bdrv_aio_flush(bs->file, cb, opaque); > } > =20 > +static BlockDriverAIOCB *json_aio_discard(BlockDriverState *bs, > + int64_t sector_num, int nb_s= ectors, > + BlockDriverCompletionFunc *c= b, > + void *opaque) > +{ > + return bdrv_aio_discard(bs->file, sector_num, nb_sectors, cb, opaq= ue); > +} > + > +static coroutine_fn int json_co_write_zeroes(BlockDriverState *bs, > + int64_t sector_num, int n= b_sectors, > + BdrvRequestFlags flags) > +{ > + return bdrv_co_write_zeroes(bs->file, sector_num, nb_sectors, flag= s); > +} > + > static void json_invalidate_cache(BlockDriverState *bs) > { > return bdrv_invalidate_cache(bs->file); > @@ -105,6 +120,16 @@ static int64_t json_getlength(BlockDriverState *bs= ) > return bdrv_getlength(bs->file); > } > =20 > +static int json_truncate(BlockDriverState *bs, int64_t offset) > +{ > + return bdrv_truncate(bs->file, offset); > +} > + > +static int json_has_zero_init(BlockDriverState *bs) > +{ > + return bdrv_has_zero_init(bs->file); > +} > + > static int json_refresh_limits(BlockDriverState *bs) > { > bs->bl =3D bs->file->bl; > @@ -128,12 +153,17 @@ static BlockDriver bdrv_json =3D { > .bdrv_aio_readv =3D json_aio_readv, > .bdrv_aio_writev =3D json_aio_writev, > .bdrv_aio_flush =3D json_aio_flush, > + .bdrv_aio_discard =3D json_aio_discard, > + > + .bdrv_co_write_zeroes =3D json_co_write_zeroes, > =20 > .bdrv_invalidate_cache =3D json_invalidate_cache, > =20 > .has_variable_length =3D true, > .bdrv_getlength =3D json_getlength, > + .bdrv_truncate =3D json_truncate, > =20 > + .bdrv_has_zero_init =3D json_has_zero_init, > .bdrv_refresh_limits =3D json_refresh_limits, > .bdrv_get_info =3D json_get_info, > =20 > --=20 > 1.9.0 >=20 Reviewed-by: Benoit Canet