The virStreamSourceFunc internal_sendall currently returns the first
value passed in from the block, which according the ruby-libvirt docs
should be zero:
The send block should return an array of 2 elements; the first element
should be the return code from the block (-1 for error, 0 otherwise)
But according to the libvirt docs of virStreamSourceFunc this indicates
EOF:
Returns: the number of bytes filled, 0 upon end of file, or -1 upon error
So return the size of the buffer to unbreak volume uploads.