mirror of
https://github.com/qemu/qemu.git
synced 2025-08-16 06:43:21 +00:00
nbd: Move nbd_read_eof() to nbd/client.c
The only caller of nbd_read_eof() is nbd_receive_reply(), so it doesn't have to live in the header file, but can move next to its caller. Also add the missing coroutine_fn to the function and its caller. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
2a239e6e03
commit
a7b78fc944
@ -300,7 +300,8 @@ int nbd_receive_export_list(QIOChannel *ioc, QCryptoTLSCreds *tlscreds,
|
|||||||
int nbd_init(int fd, QIOChannelSocket *sioc, NBDExportInfo *info,
|
int nbd_init(int fd, QIOChannelSocket *sioc, NBDExportInfo *info,
|
||||||
Error **errp);
|
Error **errp);
|
||||||
int nbd_send_request(QIOChannel *ioc, NBDRequest *request);
|
int nbd_send_request(QIOChannel *ioc, NBDRequest *request);
|
||||||
int nbd_receive_reply(QIOChannel *ioc, NBDReply *reply, Error **errp);
|
int coroutine_fn nbd_receive_reply(QIOChannel *ioc, NBDReply *reply,
|
||||||
|
Error **errp);
|
||||||
int nbd_client(int fd);
|
int nbd_client(int fd);
|
||||||
int nbd_disconnect(int fd);
|
int nbd_disconnect(int fd);
|
||||||
int nbd_errno_to_system_errno(int err);
|
int nbd_errno_to_system_errno(int err);
|
||||||
|
22
nbd/client.c
22
nbd/client.c
@ -1387,12 +1387,32 @@ static int nbd_receive_structured_reply_chunk(QIOChannel *ioc,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* nbd_read_eof
|
||||||
|
* Tries to read @size bytes from @ioc.
|
||||||
|
* Returns 1 on success
|
||||||
|
* 0 on eof, when no data was read (errp is not set)
|
||||||
|
* negative errno on failure (errp is set)
|
||||||
|
*/
|
||||||
|
static inline int coroutine_fn
|
||||||
|
nbd_read_eof(QIOChannel *ioc, void *buffer, size_t size, Error **errp)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
assert(size);
|
||||||
|
ret = qio_channel_read_all_eof(ioc, buffer, size, errp);
|
||||||
|
if (ret < 0) {
|
||||||
|
ret = -EIO;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* nbd_receive_reply
|
/* nbd_receive_reply
|
||||||
* Returns 1 on success
|
* Returns 1 on success
|
||||||
* 0 on eof, when no data was read (errp is not set)
|
* 0 on eof, when no data was read (errp is not set)
|
||||||
* negative errno on failure (errp is set)
|
* negative errno on failure (errp is set)
|
||||||
*/
|
*/
|
||||||
int nbd_receive_reply(QIOChannel *ioc, NBDReply *reply, Error **errp)
|
int coroutine_fn nbd_receive_reply(QIOChannel *ioc, NBDReply *reply,
|
||||||
|
Error **errp)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
const char *type;
|
const char *type;
|
||||||
|
@ -64,25 +64,6 @@
|
|||||||
#define NBD_SET_TIMEOUT _IO(0xab, 9)
|
#define NBD_SET_TIMEOUT _IO(0xab, 9)
|
||||||
#define NBD_SET_FLAGS _IO(0xab, 10)
|
#define NBD_SET_FLAGS _IO(0xab, 10)
|
||||||
|
|
||||||
/* nbd_read_eof
|
|
||||||
* Tries to read @size bytes from @ioc.
|
|
||||||
* Returns 1 on success
|
|
||||||
* 0 on eof, when no data was read (errp is not set)
|
|
||||||
* negative errno on failure (errp is set)
|
|
||||||
*/
|
|
||||||
static inline int nbd_read_eof(QIOChannel *ioc, void *buffer, size_t size,
|
|
||||||
Error **errp)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
assert(size);
|
|
||||||
ret = qio_channel_read_all_eof(ioc, buffer, size, errp);
|
|
||||||
if (ret < 0) {
|
|
||||||
ret = -EIO;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* nbd_write
|
/* nbd_write
|
||||||
* Writes @size bytes to @ioc. Returns 0 on success.
|
* Writes @size bytes to @ioc. Returns 0 on success.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user