Paul,--On 3 June 2011 12:08:40 -0400 Paul Clements <paul.clements@...856...> wrote:
Right, the driver expects to get the amount of data that was requested back from the nbd-server, except when the reply header indicates an error, in which case it expects no data.
Indeed. And right now what the server returns for errors that occur more than 128KB in is [HEADER WITH NO ERROR] [SOME DATA BUT NOT THE WHOLE LOT] [RANDOM EXTRA HEADER WHERE DATA SHOULD BE] The kernel then thinks it is waiting for the rest of the data. Which is bad :-) Recent kernel clients might not actually issue read requests >128KB for the reasons you set out earlier, but we have at least some kernels that do (see Wouter's response), and this is useful for some clients to do (I wonder if I can make max size be tweaked by an ioctl). -- Alex Bligh