qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] qemu-nbd: return ENOSPC for out-of-range writes


From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH] qemu-nbd: return ENOSPC for out-of-range writes
Date: Fri, 8 May 2015 12:21:24 +0200

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 <address@hidden>
Cc: address@hidden
Signed-off-by: Paolo Bonzini <address@hidden>
---
 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]