From: Sam Li <[email protected]> The zone-size field in BlockLimits is currently uint32_t, capping expressible zone sizes at 4 GiB. Real zoned-device protocols like NVMe ZNS allow larger zones. Widen BlockLimits.zone_size to uint64_t to match.
Signed-off-by: Sam Li <[email protected]> Reviewed-by: Niklas Cassel <[email protected]> Reviewed-by: Damien Le Moal <[email protected]> Reviewed-by: Stefan Hajnoczi <[email protected]> Signed-off-by: Niklas Cassel <[email protected]> Message-id: [email protected] Signed-off-by: Stefan Hajnoczi <[email protected]> --- include/block/block_int-common.h | 2 +- block/file-posix.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/block/block_int-common.h b/include/block/block_int-common.h index 46428b034de..b227ff34a18 100644 --- a/include/block/block_int-common.h +++ b/include/block/block_int-common.h @@ -902,7 +902,7 @@ typedef struct BlockLimits { BlockZoneModel zoned; /* zone size expressed in bytes */ - uint32_t zone_size; + uint64_t zone_size; /* total number of zones */ uint32_t nr_zones; diff --git a/block/file-posix.c b/block/file-posix.c index df117f35d48..df8ca4e88fa 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -3617,7 +3617,7 @@ raw_co_zone_append(BlockDriverState *bs, if (*offset & zone_size_mask) { error_report("sector offset %" PRId64 " is not aligned to zone size " - "%" PRId32 "", *offset / 512, bs->bl.zone_size / 512); + "%" PRId64 "", *offset / 512, bs->bl.zone_size / 512); return -EINVAL; } -- 2.56.0
