diff options
Diffstat (limited to 'src/server/fileutil.c')
-rw-r--r-- | src/server/fileutil.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/fileutil.c b/src/server/fileutil.c index f09a899..58ac0e9 100644 --- a/src/server/fileutil.c +++ b/src/server/fileutil.c @@ -52,11 +52,17 @@ bool mkdir_p(const char* path) bool file_alloc(int fd, uint64_t offset, uint64_t size) { +#ifdef __linux__ if ( fallocate( fd, 0, offset, size ) == 0 ) return true; // fast way +#elif defined(__FreeBSD__) if ( posix_fallocate( fd, offset, size ) == 0 ) return true; // slow way +#endif + + /* This doesn't make any sense, AFAIK if ( lseek( fd, offset + size - 1, SEEK_SET ) != (off_t)offset ) return false; // dumb way if ( write( fd, "", 1 ) != 1 ) return false; - return true; + */ + return false; } int64_t file_freeDiskSpace(const char * const path) |