* OpenSolaris compatibility.

This commit is contained in:
Eelco Dolstra 2009-09-30 09:54:29 +00:00
parent 0f79ad47c5
commit 1a8f8fd86f

View file

@ -302,7 +302,12 @@ struct RestoreSink : ParseSink
#if HAVE_POSIX_FALLOCATE #if HAVE_POSIX_FALLOCATE
if (len) { if (len) {
errno = posix_fallocate(fd, 0, len); errno = posix_fallocate(fd, 0, len);
if (errno) throw SysError(format("preallocating file of %1% bytes") % len); /* Note that EINVAL may indicate that the underlying
filesystem doesn't support preallocation (e.g. on
OpenSolaris). Since preallocation is just an
optimisation, ignore it. */
if (errno && errno != EINVAL)
throw SysError(format("preallocating file of %1% bytes") % len);
} }
#endif #endif
} }