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

Reply via email to