
On Tue, Jun 14, 2011 at 09:05:55AM -0600, Eric Blake wrote:
On 06/14/2011 08:58 AM, Daniel P. Berrange wrote:
Most of the safezero() implementations return -1 on error, setting errno. The safezero() impl using posix_fallocate() though returned a positive errno value on error (due to the unusual API contract of posix_fallocate() compared to most syscall APIs).
* src/util/util.c: Ensure safezero() returns -1 and sets errno on error. * src/storage/storage_backend.c: Change safezero != 0 to < 0 for detecting errors --- src/storage/storage_backend.c | 4 ++-- src/util/util.c | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-)
ACK. How'd you spot this?
I was calling it in some other code I have, and wondering why nothing happened to the file on disk. It turns out I was passing an invalid file descriptor, and I never knew because it was not correctly reporting the errors. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|