|
From: | Eric Blake |
Subject: | Re: [Qemu-block] [PATCH 1/2] nbd/server: fix nbd_co_send_block_status |
Date: | Thu, 5 Jul 2018 10:42:28 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 |
On 07/04/2018 06:23 AM, Vladimir Sementsov-Ogievskiy wrote:
Call nbd_co_send_extents() with correct length parameter (extent.length may be smaller than original length).
Only matters for tracing purposes, but indeed worth an accurate trace.
Also, switch length parameter type to uint32_t, to correspond with request->len and similar nbd_co_send_bitmap().
No semantic impact.
Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden> --- nbd/server.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nbd/server.c b/nbd/server.c index e52b76bd1a..ea5fe0eb33 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -1910,7 +1910,7 @@ static int nbd_co_send_extents(NBDClient *client, uint64_t handle, /* Get block status from the exported device and send it to the client */ static int nbd_co_send_block_status(NBDClient *client, uint64_t handle, BlockDriverState *bs, uint64_t offset, - uint64_t length, bool last, + uint32_t length, bool last, uint32_t context_id, Error **errp) { int ret; @@ -1922,7 +1922,8 @@ static int nbd_co_send_block_status(NBDClient *client, uint64_t handle, client, handle, -ret, "can't get block status", errp); }- return nbd_co_send_extents(client, handle, &extent, 1, length, last,+ return nbd_co_send_extents(client, handle, &extent, 1, + be32_to_cpu(extent.length), last,
be32_to_cpu() is necessary to undo the fact that extent is already encoded for transmission over the wire. Alternatively, blockstatus_to_extent_be() could be modified to return negative on error, or the total length encoded on success, or set the final length via a pointer parameter. But the next patch will probably deal with that more directly.
This one is fine for 3.0, Reviewed-by: Eric Blake <address@hidden> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
[Prev in Thread] | Current Thread | [Next in Thread] |