This ensures that werror=enospc works fine for NBD-backed devices. Recovery can be done through live snapshots even if the NBD server does not support online resizing.
Suggested-by: Kevin Wolf <kw...@redhat.com> Cc: qemu-sta...@nongnu.org Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- nbd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nbd.c b/nbd.c index 57d71b2..a04ba80 100644 --- a/nbd.c +++ b/nbd.c @@ -1297,7 +1297,8 @@ static void nbd_trip(void *opaque) request.from, request.len, (uint64_t)exp->size, (uint64_t)exp->dev_offset); LOG("requested operation past EOF--bad client?"); - goto invalid_request; + reply.error = (command == NBD_CMD_WRITE) ? ENOSPC : EINVAL; + goto error_reply; } switch (command) { @@ -1390,7 +1391,6 @@ static void nbd_trip(void *opaque) break; default: LOG("invalid request type (%u) received", request.type); - invalid_request: reply.error = EINVAL; error_reply: if (nbd_co_send_reply(req, &reply, 0) < 0) { -- 2.3.5