If read-zeroes is not set, we did not report BDRV_BLOCK_DATA or BDRV_BLOCK_ZERO. This is not consistent with other drivers and can confuse users or other programs:
% qemu-img map --output json "json:{'driver': 'raw', 'file': {'driver': 'null-co', 'size': '1g'}}" [{ "start": 0, "length": 1073741824, "depth": 0, "present": false, "zero": false, "data": false, "compressed": false}] % qemu-nbd "json:{'driver': 'raw', 'file': {'driver': 'null-co', 'size': '1g'}}" & % nbdinfo --map nbd://127.0.0.1 0 1073741824 1 hole With this change we report DATA in this case: % ./qemu-img map --output json "json:{'driver': 'raw', 'file': {'driver': 'null-co', 'size': '1g'}}" [{ "start": 0, "length": 1073741824, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": 0}] % ./qemu-nbd "json:{'driver': 'raw', 'file': {'driver': 'null-co', 'size': '1g'}}" & % nbdinfo --map nbd://127.0.0.1 0 1073741824 0 data Signed-off-by: Nir Soffer <nir...@gmail.com> --- block/null.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/block/null.c b/block/null.c index dc0b1fdbd9..7ba87bd9a9 100644 --- a/block/null.c +++ b/block/null.c @@ -239,9 +239,7 @@ static int coroutine_fn null_co_block_status(BlockDriverState *bs, *map = offset; *file = bs; - if (s->read_zeroes) { - ret |= BDRV_BLOCK_ZERO; - } + ret |= s->read_zeroes ? BDRV_BLOCK_ZERO : BDRV_BLOCK_DATA; return ret; } -- 2.39.5 (Apple Git-154)