On 10/12/18 6:55 AM, Kevin Wolf wrote:
> If read-only=off, but auto-read-only=on is given, open a read-write NBD
> connection if the server provides a read-write export, but instead of
> erroring out for read-only exports, just degrade to read-only.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> block/nbd-client.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
Reviewed-by: Eric Blake <eblake@redhat.com>
> diff --git a/block/nbd-client.c b/block/nbd-client.c
> index 9686ecbd5e..76e9ca3abe 100644
> --- a/block/nbd-client.c
> +++ b/block/nbd-client.c
> @@ -992,11 +992,11 @@ int nbd_client_init(BlockDriverState *bs,
> logout("Failed to negotiate with the NBD server\n");
> return ret;
> }
> - if (client->info.flags & NBD_FLAG_READ_ONLY &&
> - !bdrv_is_read_only(bs)) {
> - error_setg(errp,
> - "request for write access conflicts with read-only export");
> - return -EACCES;
> + if (client->info.flags & NBD_FLAG_READ_ONLY) {
> + ret = bdrv_apply_auto_read_only(bs, "NBD export is read-only", errp);
> + if (ret < 0) {
> + return ret;
> + }
> }
> if (client->info.flags & NBD_FLAG_SEND_FUA) {
> bs->supported_write_flags = BDRV_REQ_FUA;
>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org