aboutsummaryrefslogtreecommitdiff
path: root/nbd/server.c
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2016-04-05 21:35:02 -0600
committerPaolo Bonzini <pbonzini@redhat.com>2016-04-08 00:07:43 +0200
commitc0301fcc811432a587f6f94fee08d7965c1671d0 (patch)
treec48b8814eebecdf284ea35b861c7f3f7028054c7 /nbd/server.c
parentb3f3fdeb956a1fb866939ee1b2d8392b8f536a79 (diff)
nbd: Return correct error for write to read-only export
The NBD Protocol requires that servers should send EPERM for attempts to write (or trim) a read-only export. We were correct for TRIM (blk_co_discard() gave EPERM); but were manually setting EROFS which then got mapped to EINVAL over the wire on writes. Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <1459913704-19949-2-git-send-email-eblake@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'nbd/server.c')
-rw-r--r--nbd/server.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/nbd/server.c b/nbd/server.c
index b95571bdf5..98e3957605 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -26,6 +26,7 @@ static int system_errno_to_nbd_errno(int err)
case 0:
return NBD_SUCCESS;
case EPERM:
+ case EROFS:
return NBD_EPERM;
case EIO:
return NBD_EIO;