On Wed, Sep 20, 2017 at 02:58:55PM +0300, Nikolay Shirokovskiy wrote: > saferead is not suitable for direct reads. If file size is not multiple > of align size then we get EINVAL on the read(2) that is supposed to > return 0 because read buffer will not be aligned at this point. > > Let's not read again after partial read and check that we read > everything by comparing the number of total bytes read against file size. What scenario did you actually hit this problem in ? IIUC, we should only be using O_DIRECT against block devices or plain files, and in both those cases we should never see short-read unless we hit EOF. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list