mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 06:43:53 -06:00
nbd: Fix struct name for structured reads
A closer read of the NBD spec shows that a structured reply chunk
for a hole is not quite identical to the prefix of a data chunk,
because the hole has to also send a 32-bit size field. Although
we do not yet send holes, we should fix the misleading information
in our header and make it easier for a future patch to support
sparse reads. Messed up in commit bae245d1
.
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20171108215703.9295-5-eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
This commit is contained in:
parent
079d3266c7
commit
efdc0c103d
2 changed files with 14 additions and 6 deletions
|
@ -86,15 +86,23 @@ typedef union NBDReply {
|
|||
} QEMU_PACKED;
|
||||
} NBDReply;
|
||||
|
||||
/* Header of NBD_REPLY_TYPE_OFFSET_DATA, complete NBD_REPLY_TYPE_OFFSET_HOLE */
|
||||
typedef struct NBDStructuredRead {
|
||||
NBDStructuredReplyChunk h;
|
||||
/* Header of chunk for NBD_REPLY_TYPE_OFFSET_DATA */
|
||||
typedef struct NBDStructuredReadData {
|
||||
NBDStructuredReplyChunk h; /* h.length >= 9 */
|
||||
uint64_t offset;
|
||||
} QEMU_PACKED NBDStructuredRead;
|
||||
/* At least one byte of data payload follows, calculated from h.length */
|
||||
} QEMU_PACKED NBDStructuredReadData;
|
||||
|
||||
/* Complete chunk for NBD_REPLY_TYPE_OFFSET_HOLE */
|
||||
typedef struct NBDStructuredReadHole {
|
||||
NBDStructuredReplyChunk h; /* h.length == 12 */
|
||||
uint64_t offset;
|
||||
uint32_t length;
|
||||
} QEMU_PACKED NBDStructuredReadHole;
|
||||
|
||||
/* Header of all NBD_REPLY_TYPE_ERROR* errors */
|
||||
typedef struct NBDStructuredError {
|
||||
NBDStructuredReplyChunk h;
|
||||
NBDStructuredReplyChunk h; /* h.length >= 6 */
|
||||
uint32_t error;
|
||||
uint16_t message_length;
|
||||
} QEMU_PACKED NBDStructuredError;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue