On 08/15/2018 04:23 AM, Vladimir Sementsov-Ogievskiy wrote:
ping.
Finally, Qemu 3.0 released, and it is incompatible with current NBD
protocol. Please, commit this patch.
Indeed, qemu 3.0 with the qemu:dirty-bitmap:NAME context does exceed the
final length when REQ_ONE is not in force.
As I recall, there was no complaint about the concept, only the wording;
so I think this updated wording satisfies everyone:
If the client used the `NBD_CMD_FLAG_REQ_ONE` flag in the request,
- then every reply chunk MUST NOT contain more than one descriptor.
+ then every reply chunk MUST contain exactly one descriptor, and that
+ descriptor MUST NOT exceed the *length* of the original request. If
+ the client did not use the flag, and the server replies with N
+ extents, then the sum of the *length* fields of the first N-1
+ extents (if any) MUST be less than the requested length, while the
+ *length* of the final extent MAY result in a sum larger than the
+ original requested length, if the server has that information anyway
+ as a side effect of reporting the status of the requested region.
I've gone ahead and pushed this.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org