On 25/02/2015 19:08, Max Reitz wrote: > If some operation cannot be performed by a block driver, it is normally > supposed to return an error. In these cases, however, it is fine to > pretend the operations were carried out successfully because if the NBD > block driver would not implement discard or flush in the first place, > this is exactly what the block layer would do. > > Because this may not be obvious, add a comment for it. > > Signed-off-by: Max Reitz <mre...@redhat.com> > --- > block/nbd-client.c | 2 ++ > 1 file changed, 2 insertions(+) > > 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? Paolo > } > request.from = sector_num * 512; >