nbd/client: refactor nbd_receive_reply
Refactor nbd_receive_reply to return 1 on success, 0 on eof, when no data was read and <0 for other cases, because returned size of read data is not actually used. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20170804151440.320927-4-vsementsov@virtuozzo.com> [eblake: tweak function comments] Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
ab01df1fe2
commit
ba8456442b
|
@ -164,7 +164,7 @@ int nbd_receive_negotiate(QIOChannel *ioc, const char *name,
|
||||||
int nbd_init(int fd, QIOChannelSocket *sioc, NBDExportInfo *info,
|
int nbd_init(int fd, QIOChannelSocket *sioc, NBDExportInfo *info,
|
||||||
Error **errp);
|
Error **errp);
|
||||||
ssize_t nbd_send_request(QIOChannel *ioc, NBDRequest *request);
|
ssize_t nbd_send_request(QIOChannel *ioc, NBDRequest *request);
|
||||||
ssize_t nbd_receive_reply(QIOChannel *ioc, NBDReply *reply, Error **errp);
|
int 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);
|
||||||
|
|
||||||
|
|
12
nbd/client.c
12
nbd/client.c
|
@ -914,11 +914,16 @@ ssize_t nbd_send_request(QIOChannel *ioc, NBDRequest *request)
|
||||||
return nbd_write(ioc, buf, sizeof(buf), NULL);
|
return nbd_write(ioc, buf, sizeof(buf), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t nbd_receive_reply(QIOChannel *ioc, NBDReply *reply, Error **errp)
|
/* nbd_receive_reply
|
||||||
|
* Returns 1 on success
|
||||||
|
* 0 on eof, when no data was read (errp is not set)
|
||||||
|
* negative errno on failure (errp is set)
|
||||||
|
*/
|
||||||
|
int nbd_receive_reply(QIOChannel *ioc, NBDReply *reply, Error **errp)
|
||||||
{
|
{
|
||||||
uint8_t buf[NBD_REPLY_SIZE];
|
uint8_t buf[NBD_REPLY_SIZE];
|
||||||
uint32_t magic;
|
uint32_t magic;
|
||||||
ssize_t ret;
|
int ret;
|
||||||
|
|
||||||
ret = nbd_read_eof(ioc, buf, sizeof(buf), errp);
|
ret = nbd_read_eof(ioc, buf, sizeof(buf), errp);
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
|
@ -948,6 +953,7 @@ ssize_t nbd_receive_reply(QIOChannel *ioc, NBDReply *reply, Error **errp)
|
||||||
error_setg(errp, "invalid magic (got 0x%" PRIx32 ")", magic);
|
error_setg(errp, "invalid magic (got 0x%" PRIx32 ")", magic);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
return sizeof(buf);
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue