[libvirt] [PATCH v3] iohelper: fsync() at the end

Eric Blake eblake at redhat.com
Thu Nov 1 14:57:36 UTC 2012

On 11/01/2012 08:54 AM, Eric Blake wrote:
> On 11/01/2012 08:28 AM, Michal Privoznik wrote:
>> Currently, when we are doing (managed) save, we insert the
>> iohelper between the qemu and OS. The pipe is created, the
>> writing end is passed to qemu and the reading end to the
>> iohelper. It reads data and write them into given file. However,
>> with write() being asynchronous data may still be in OS
>> caches and hence in some (corner) cases, all migration data
>> may have been read and written (not physically though). So
>> qemu will report success, as well as iohelper. However, with
>> some non local filesystems, where ENOSPACE is polled every X
>> time units, we may get into situation where all operations
>> succeeded but data hasn't reached the disk. And in fact will
>> never do. Therefore we ought sync caches to make sure data
>> has reached the block device on remote host.
>> ---
>>  src/util/iohelper.c |    6 ++++++
>>  1 files changed, 6 insertions(+), 0 deletions(-)
> ACK.

Dan's comment about s/fsync/fdatasync/ in the subject line still apply,
if you haven't already pushed.

Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 617 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20121101/84ee93eb/attachment-0001.sig>

More information about the libvir-list mailing list