mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
nbd: Move nbd_errno_to_system_errno() to public header
This is needed in preparation for structured reply handling, as we will be performing the translation from NBD error to system errno value higher in the stack at block/nbd-client.c. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20171027104037.8319-3-eblake@redhat.com>
This commit is contained in:
parent
e7a78d0eff
commit
dd68944049
5 changed files with 50 additions and 45 deletions
34
nbd/common.c
34
nbd/common.c
|
@ -18,6 +18,7 @@
|
|||
|
||||
#include "qemu/osdep.h"
|
||||
#include "qapi/error.h"
|
||||
#include "trace.h"
|
||||
#include "nbd-internal.h"
|
||||
|
||||
/* Discard length bytes from channel. Return -errno on failure and 0 on
|
||||
|
@ -171,3 +172,36 @@ const char *nbd_err_lookup(int err)
|
|||
return "<unknown>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int nbd_errno_to_system_errno(int err)
|
||||
{
|
||||
int ret;
|
||||
switch (err) {
|
||||
case NBD_SUCCESS:
|
||||
ret = 0;
|
||||
break;
|
||||
case NBD_EPERM:
|
||||
ret = EPERM;
|
||||
break;
|
||||
case NBD_EIO:
|
||||
ret = EIO;
|
||||
break;
|
||||
case NBD_ENOMEM:
|
||||
ret = ENOMEM;
|
||||
break;
|
||||
case NBD_ENOSPC:
|
||||
ret = ENOSPC;
|
||||
break;
|
||||
case NBD_ESHUTDOWN:
|
||||
ret = ESHUTDOWN;
|
||||
break;
|
||||
default:
|
||||
trace_nbd_unknown_error(err);
|
||||
/* fallthrough */
|
||||
case NBD_EINVAL:
|
||||
ret = EINVAL;
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue