diff options
author | Eric Blake <eblake@redhat.com> | 2016-04-05 21:35:02 -0600 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-04-08 00:07:43 +0200 |
commit | c0301fcc811432a587f6f94fee08d7965c1671d0 (patch) | |
tree | c48b8814eebecdf284ea35b861c7f3f7028054c7 /nbd/server.c | |
parent | b3f3fdeb956a1fb866939ee1b2d8392b8f536a79 (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.c | 1 |
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; |