|
From: | Pavel Butsykin |
Subject: | Re: [Qemu-devel] [PATCH 01/11] block: switch blk_write_compressed() to byte-based interface |
Date: | Tue, 28 Jun 2016 14:32:09 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 28.06.2016 13:53, Kevin Wolf wrote:
Am 13.06.2016 um 16:23 hat Eric Blake geschrieben:On 05/31/2016 03:15 AM, Denis V. Lunev wrote:From: Pavel Butsykin <address@hidden> This is a preparatory patch, which continues the general trend of the transition to the byte-based interfaces. Signed-off-by: Pavel Butsykin <address@hidden> Signed-off-by: Denis V. Lunev <address@hidden> CC: Jeff Cody <address@hidden> CC: Markus Armbruster <address@hidden> CC: Eric Blake <address@hidden> CC: John Snow <address@hidden> CC: Stefan Hajnoczi <address@hidden> CC: Kevin Wolf <address@hidden>-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.Yes, I would like to have these assertions at least. But I'm wondering what the point of converting the interface is when we don't intend to actually support sub-sector requests and the sector alignment is still required at the end of the series.
Because at the time of sending patches, the format drivers still had the sector-based interfaces. In the end, the assertions are not necessary, because the interface format driver now also byte-based.
Kevin
[Prev in Thread] | Current Thread | [Next in Thread] |