On 16/03/2015 14:58, Max Reitz wrote: >>> >>> diff --git a/block/nbd-client.c b/block/nbd-client.c >>> index be6803d..ab13607 100644 >>> --- a/block/nbd-client.c >>> +++ b/block/nbd-client.c >>> @@ -315,6 +315,7 @@ int nbd_client_co_flush(BlockDriverState *bs) >>> ssize_t ret; >>> if (!(client->nbdflags & NBD_FLAG_SEND_FLUSH)) { >>> + /* This mirrors the behavior of bdrv_co_flush() in block.c */ >>> return 0; >>> } >>> @@ -350,6 +351,7 @@ int nbd_client_co_discard(BlockDriverState *bs, >>> int64_t sector_num, >>> ssize_t ret; >>> if (!(client->nbdflags & NBD_FLAG_SEND_TRIM)) { >>> + /* This mirrors the behavior of bdrv_co_discard() in block.c */ >>> return 0; >> Should this return -EOPNOTSUPP instead? > > That's what this patch is for. I asked myself the same thing, and it > turns out, the functions deliberately return 0 because bdrv_co_flush() > and bdrv_co_discard() do the same if the block driver does not support > these functions at all, so that's why I'm adding these comments.
Right, but a better model than block.c should be for example block/raw-posix.c, which returns ENOTSUP (I checked now...). Paolo