nbd: Drop unused offset parameter
Now that NBD relies on the block layer to fragment things, we no longer need to track an offset argument for which fragment of a request we are actually servicing. While at it, use true and false instead of 0 and 1 for a bool parameter. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1468607524-19021-6-git-send-email-eblake@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
		
							parent
							
								
									fb1a6de14a
								
							
						
					
					
						commit
						1e2a77a851
					
				| 
						 | 
				
			
			@ -116,7 +116,7 @@ static void nbd_restart_write(void *opaque)
 | 
			
		|||
 | 
			
		||||
static int nbd_co_send_request(BlockDriverState *bs,
 | 
			
		||||
                               struct nbd_request *request,
 | 
			
		||||
                               QEMUIOVector *qiov, int offset)
 | 
			
		||||
                               QEMUIOVector *qiov)
 | 
			
		||||
{
 | 
			
		||||
    NbdClientSession *s = nbd_get_client_session(bs);
 | 
			
		||||
    AioContext *aio_context;
 | 
			
		||||
| 
						 | 
				
			
			@ -149,8 +149,8 @@ static int nbd_co_send_request(BlockDriverState *bs,
 | 
			
		|||
        qio_channel_set_cork(s->ioc, true);
 | 
			
		||||
        rc = nbd_send_request(s->ioc, request);
 | 
			
		||||
        if (rc >= 0) {
 | 
			
		||||
            ret = nbd_wr_syncv(s->ioc, qiov->iov, qiov->niov,
 | 
			
		||||
                               offset, request->len, 0);
 | 
			
		||||
            ret = nbd_wr_syncv(s->ioc, qiov->iov, qiov->niov, request->len,
 | 
			
		||||
                               false);
 | 
			
		||||
            if (ret != request->len) {
 | 
			
		||||
                rc = -EIO;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -167,8 +167,9 @@ static int nbd_co_send_request(BlockDriverState *bs,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static void nbd_co_receive_reply(NbdClientSession *s,
 | 
			
		||||
    struct nbd_request *request, struct nbd_reply *reply,
 | 
			
		||||
    QEMUIOVector *qiov, int offset)
 | 
			
		||||
                                 struct nbd_request *request,
 | 
			
		||||
                                 struct nbd_reply *reply,
 | 
			
		||||
                                 QEMUIOVector *qiov)
 | 
			
		||||
{
 | 
			
		||||
    int ret;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -181,8 +182,8 @@ static void nbd_co_receive_reply(NbdClientSession *s,
 | 
			
		|||
        reply->error = EIO;
 | 
			
		||||
    } else {
 | 
			
		||||
        if (qiov && reply->error == 0) {
 | 
			
		||||
            ret = nbd_wr_syncv(s->ioc, qiov->iov, qiov->niov,
 | 
			
		||||
                               offset, request->len, 1);
 | 
			
		||||
            ret = nbd_wr_syncv(s->ioc, qiov->iov, qiov->niov, request->len,
 | 
			
		||||
                               true);
 | 
			
		||||
            if (ret != request->len) {
 | 
			
		||||
                reply->error = EIO;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -230,11 +231,11 @@ int nbd_client_co_readv(BlockDriverState *bs, int64_t sector_num,
 | 
			
		|||
    request.len = nb_sectors * 512;
 | 
			
		||||
 | 
			
		||||
    nbd_coroutine_start(client, &request);
 | 
			
		||||
    ret = nbd_co_send_request(bs, &request, NULL, 0);
 | 
			
		||||
    ret = nbd_co_send_request(bs, &request, NULL);
 | 
			
		||||
    if (ret < 0) {
 | 
			
		||||
        reply.error = -ret;
 | 
			
		||||
    } else {
 | 
			
		||||
        nbd_co_receive_reply(client, &request, &reply, qiov, 0);
 | 
			
		||||
        nbd_co_receive_reply(client, &request, &reply, qiov);
 | 
			
		||||
    }
 | 
			
		||||
    nbd_coroutine_end(client, &request);
 | 
			
		||||
    return -reply.error;
 | 
			
		||||
| 
						 | 
				
			
			@ -259,11 +260,11 @@ int nbd_client_co_writev(BlockDriverState *bs, int64_t sector_num,
 | 
			
		|||
    request.len = nb_sectors * 512;
 | 
			
		||||
 | 
			
		||||
    nbd_coroutine_start(client, &request);
 | 
			
		||||
    ret = nbd_co_send_request(bs, &request, qiov, 0);
 | 
			
		||||
    ret = nbd_co_send_request(bs, &request, qiov);
 | 
			
		||||
    if (ret < 0) {
 | 
			
		||||
        reply.error = -ret;
 | 
			
		||||
    } else {
 | 
			
		||||
        nbd_co_receive_reply(client, &request, &reply, NULL, 0);
 | 
			
		||||
        nbd_co_receive_reply(client, &request, &reply, NULL);
 | 
			
		||||
    }
 | 
			
		||||
    nbd_coroutine_end(client, &request);
 | 
			
		||||
    return -reply.error;
 | 
			
		||||
| 
						 | 
				
			
			@ -284,11 +285,11 @@ int nbd_client_co_flush(BlockDriverState *bs)
 | 
			
		|||
    request.len = 0;
 | 
			
		||||
 | 
			
		||||
    nbd_coroutine_start(client, &request);
 | 
			
		||||
    ret = nbd_co_send_request(bs, &request, NULL, 0);
 | 
			
		||||
    ret = nbd_co_send_request(bs, &request, NULL);
 | 
			
		||||
    if (ret < 0) {
 | 
			
		||||
        reply.error = -ret;
 | 
			
		||||
    } else {
 | 
			
		||||
        nbd_co_receive_reply(client, &request, &reply, NULL, 0);
 | 
			
		||||
        nbd_co_receive_reply(client, &request, &reply, NULL);
 | 
			
		||||
    }
 | 
			
		||||
    nbd_coroutine_end(client, &request);
 | 
			
		||||
    return -reply.error;
 | 
			
		||||
| 
						 | 
				
			
			@ -309,11 +310,11 @@ int nbd_client_co_discard(BlockDriverState *bs, int64_t sector_num,
 | 
			
		|||
    request.len = nb_sectors * 512;
 | 
			
		||||
 | 
			
		||||
    nbd_coroutine_start(client, &request);
 | 
			
		||||
    ret = nbd_co_send_request(bs, &request, NULL, 0);
 | 
			
		||||
    ret = nbd_co_send_request(bs, &request, NULL);
 | 
			
		||||
    if (ret < 0) {
 | 
			
		||||
        reply.error = -ret;
 | 
			
		||||
    } else {
 | 
			
		||||
        nbd_co_receive_reply(client, &request, &reply, NULL, 0);
 | 
			
		||||
        nbd_co_receive_reply(client, &request, &reply, NULL);
 | 
			
		||||
    }
 | 
			
		||||
    nbd_coroutine_end(client, &request);
 | 
			
		||||
    return -reply.error;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -89,7 +89,6 @@ enum {
 | 
			
		|||
ssize_t nbd_wr_syncv(QIOChannel *ioc,
 | 
			
		||||
                     struct iovec *iov,
 | 
			
		||||
                     size_t niov,
 | 
			
		||||
                     size_t offset,
 | 
			
		||||
                     size_t length,
 | 
			
		||||
                     bool do_read);
 | 
			
		||||
int nbd_receive_negotiate(QIOChannel *ioc, const char *name, uint32_t *flags,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,7 +23,6 @@
 | 
			
		|||
ssize_t nbd_wr_syncv(QIOChannel *ioc,
 | 
			
		||||
                     struct iovec *iov,
 | 
			
		||||
                     size_t niov,
 | 
			
		||||
                     size_t offset,
 | 
			
		||||
                     size_t length,
 | 
			
		||||
                     bool do_read)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -33,9 +32,7 @@ ssize_t nbd_wr_syncv(QIOChannel *ioc,
 | 
			
		|||
    struct iovec *local_iov_head = local_iov;
 | 
			
		||||
    unsigned int nlocal_iov = niov;
 | 
			
		||||
 | 
			
		||||
    nlocal_iov = iov_copy(local_iov, nlocal_iov,
 | 
			
		||||
                          iov, niov,
 | 
			
		||||
                          offset, length);
 | 
			
		||||
    nlocal_iov = iov_copy(local_iov, nlocal_iov, iov, niov, 0, length);
 | 
			
		||||
 | 
			
		||||
    while (nlocal_iov > 0) {
 | 
			
		||||
        ssize_t len;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -101,14 +101,14 @@ static inline ssize_t read_sync(QIOChannel *ioc, void *buffer, size_t size)
 | 
			
		|||
     * our request/reply.  Synchronization is done with recv_coroutine, so
 | 
			
		||||
     * that this is coroutine-safe.
 | 
			
		||||
     */
 | 
			
		||||
    return nbd_wr_syncv(ioc, &iov, 1, 0, size, true);
 | 
			
		||||
    return nbd_wr_syncv(ioc, &iov, 1, size, true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline ssize_t write_sync(QIOChannel *ioc, void *buffer, size_t size)
 | 
			
		||||
{
 | 
			
		||||
    struct iovec iov = { .iov_base = buffer, .iov_len = size };
 | 
			
		||||
 | 
			
		||||
    return nbd_wr_syncv(ioc, &iov, 1, 0, size, false);
 | 
			
		||||
    return nbd_wr_syncv(ioc, &iov, 1, size, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct NBDTLSHandshakeData {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue