mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-30 22:03:54 -06:00
migration: ensure qemu_fflush() always writes full data amount
The QEMUFile writev_buffer / put_buffer functions are expected to write out the full set of requested data, blocking until complete. The qemu_fflush() caller does not expect to deal with partial writes. Clarify the function comments and add a sanity check to the code to catch mistaken implementations. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Message-Id: <1461751518-12128-5-git-send-email-berrange@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
This commit is contained in:
parent
a8ec4437cd
commit
baf51e7739
2 changed files with 16 additions and 6 deletions
|
@ -28,7 +28,8 @@
|
|||
|
||||
/* This function writes a chunk of data to a file at the given position.
|
||||
* The pos argument can be ignored if the file is only being used for
|
||||
* streaming. The handler should try to write all of the data it can.
|
||||
* streaming. The handler must write all of the data or return a negative
|
||||
* errno value.
|
||||
*/
|
||||
typedef ssize_t (QEMUFilePutBufferFunc)(void *opaque, const uint8_t *buf,
|
||||
int64_t pos, size_t size);
|
||||
|
@ -54,7 +55,8 @@ typedef int (QEMUFileCloseFunc)(void *opaque);
|
|||
typedef int (QEMUFileGetFD)(void *opaque);
|
||||
|
||||
/*
|
||||
* This function writes an iovec to file.
|
||||
* This function writes an iovec to file. The handler must write all
|
||||
* of the data or return a negative errno value.
|
||||
*/
|
||||
typedef ssize_t (QEMUFileWritevBufferFunc)(void *opaque, struct iovec *iov,
|
||||
int iovcnt, int64_t pos);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue