[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
- [Qemu-devel] [PATCH] qemu-nbd: return ENOSPC for out-of-range writes,
Paolo Bonzini <=