Lines Matching full:chunk
1429 * Read structured reply chunk except magic field (which should be already
1433 static int nbd_receive_reply_chunk_header(QIOChannel *ioc, NBDReply *chunk, in nbd_receive_reply_chunk_header() argument
1440 if (chunk->magic == NBD_STRUCTURED_REPLY_MAGIC) { in nbd_receive_reply_chunk_header()
1441 len = sizeof(chunk->structured); in nbd_receive_reply_chunk_header()
1443 assert(chunk->magic == NBD_EXTENDED_REPLY_MAGIC); in nbd_receive_reply_chunk_header()
1444 len = sizeof(chunk->extended); in nbd_receive_reply_chunk_header()
1447 ret = nbd_read(ioc, (uint8_t *)chunk + sizeof(chunk->magic), in nbd_receive_reply_chunk_header()
1448 len - sizeof(chunk->magic), "structured chunk", in nbd_receive_reply_chunk_header()
1455 chunk->structured.flags = be16_to_cpu(chunk->structured.flags); in nbd_receive_reply_chunk_header()
1456 chunk->structured.type = be16_to_cpu(chunk->structured.type); in nbd_receive_reply_chunk_header()
1457 chunk->structured.cookie = be64_to_cpu(chunk->structured.cookie); in nbd_receive_reply_chunk_header()
1465 if (chunk->magic == NBD_STRUCTURED_REPLY_MAGIC) { in nbd_receive_reply_chunk_header()
1466 payload_len = be32_to_cpu(chunk->structured.length); in nbd_receive_reply_chunk_header()
1469 payload_len = be64_to_cpu(chunk->extended.length); in nbd_receive_reply_chunk_header()
1470 chunk->magic = NBD_STRUCTURED_REPLY_MAGIC; in nbd_receive_reply_chunk_header()
1473 error_setg(errp, "server chunk %" PRIu32 " (%s) payload is too long", in nbd_receive_reply_chunk_header()
1474 chunk->structured.type, in nbd_receive_reply_chunk_header()
1475 nbd_rep_lookup(chunk->structured.type)); in nbd_receive_reply_chunk_header()
1478 chunk->structured.length = payload_len; in nbd_receive_reply_chunk_header()