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 <pbutsy...@virtuozzo.com>
This is a preparatory patch, which continues the general trend of the transition
to the byte-based interfaces.
Signed-off-by: Pavel Butsykin <pbutsy...@virtuozzo.com>
Signed-off-by: Denis V. Lunev <d...@openvz.org>
CC: Jeff Cody <jc...@redhat.com>
CC: Markus Armbruster <arm...@redhat.com>
CC: Eric Blake <ebl...@redhat.com>
CC: John Snow <js...@redhat.com>
CC: Stefan Hajnoczi <stefa...@redhat.com>
CC: Kevin Wolf <kw...@redhat.com>
-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