From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53167) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFhSe-0003pM-LU for qemu-devel@nongnu.org; Wed, 22 Jun 2016 08:40:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bFhSY-0005PU-NI for qemu-devel@nongnu.org; Wed, 22 Jun 2016 08:40:51 -0400 Received: from mail-am1on0110.outbound.protection.outlook.com ([157.56.112.110]:17725 helo=emea01-am1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFhSY-0005PI-7r for qemu-devel@nongnu.org; Wed, 22 Jun 2016 08:40:46 -0400 References: <1464686130-12265-1-git-send-email-den@openvz.org> <1464686130-12265-2-git-send-email-den@openvz.org> <575EC1DC.5020501@redhat.com> From: Pavel Butsykin Message-ID: <576A83A6.5090903@virtuozzo.com> Date: Wed, 22 Jun 2016 15:25:10 +0300 MIME-Version: 1.0 In-Reply-To: <575EC1DC.5020501@redhat.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 01/11] block: switch blk_write_compressed() to byte-based interface List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake , "Denis V. Lunev" , qemu-devel@nongnu.org Cc: Jeff Cody , Markus Armbruster , John Snow , Stefan Hajnoczi , Kevin Wolf On 13.06.2016 17:23, Eric Blake wrote: > On 05/31/2016 03:15 AM, Denis V. Lunev wrote: >> From: Pavel Butsykin >> >> This is a preparatory patch, which continues the general trend of the transition >> to the byte-based interfaces. >> >> Signed-off-by: Pavel Butsykin >> Signed-off-by: Denis V. Lunev >> CC: Jeff Cody >> CC: Markus Armbruster >> CC: Eric Blake >> CC: John Snow >> CC: Stefan Hajnoczi >> CC: Kevin Wolf >> --- >> block/block-backend.c | 8 ++++---- >> block/io.c | 9 +++++---- >> include/block/block.h | 4 ++-- >> include/sysemu/block-backend.h | 4 ++-- >> qemu-img.c | 6 ++++-- >> qemu-io-cmds.c | 2 +- >> 6 files changed, 18 insertions(+), 15 deletions(-) >> >> diff --git a/block/block-backend.c b/block/block-backend.c >> index 34500e6..3c1fc50 100644 >> --- a/block/block-backend.c >> +++ b/block/block-backend.c >> @@ -1477,15 +1477,15 @@ int coroutine_fn blk_co_pwrite_zeroes(BlockBackend *blk, int64_t offset, >> flags | BDRV_REQ_ZERO_WRITE); >> } >> >> -int blk_write_compressed(BlockBackend *blk, int64_t sector_num, >> - const uint8_t *buf, int nb_sectors) >> +int blk_pwrite_compressed(BlockBackend *blk, int64_t offset, const void *buf, >> + int count) > > Why are you switching the type of buf? It's not necessarily wrong, but > the commit message should call it out as intentional. Here I just tried to make the interface like blk_pwrite, it has no other meaning more.. > >> -int bdrv_write_compressed(BlockDriverState *bs, int64_t sector_num, >> - const uint8_t *buf, int nb_sectors) >> +int bdrv_pwrite_compressed(BlockDriverState *bs, int64_t offset, >> + const void *buf, int count) >> { >> BlockDriver *drv = bs->drv; >> int ret; >> @@ -1791,14 +1791,15 @@ int bdrv_write_compressed(BlockDriverState *bs, int64_t sector_num, >> if (!drv->bdrv_write_compressed) { >> return -ENOTSUP; >> } >> - ret = bdrv_check_request(bs, sector_num, nb_sectors); >> + ret = bdrv_check_byte_request(bs, offset, count); >> if (ret < 0) { >> return ret; >> } >> >> assert(QLIST_EMPTY(&bs->dirty_bitmaps)); >> >> - return drv->bdrv_write_compressed(bs, sector_num, buf, nb_sectors); >> + return drv->bdrv_write_compressed(bs, offset >> BDRV_SECTOR_BITS, buf, >> + count >> BDRV_SECTOR_BITS); > > If you are going to shift right, you need to first assert that offset > and count are aligned (and thus that our call to a sector interface > isn't going to operate on the wrong data). See for example commit 166fe960. > ok, thanks