diff options
author | Sebastian | 2016-02-10 21:53:15 +0100 |
---|---|---|
committer | Sebastian | 2016-02-11 00:09:39 +0100 |
commit | 1ee67aedd55b452c7d5851d0e39e01aef4aca766 (patch) | |
tree | caf482cd40463d5a4b15f14e5bd5b2d34bf936bd /src/server/fileutil.c | |
parent | cleanup commits (diff) | |
download | dnbd3-1ee67aedd55b452c7d5851d0e39e01aef4aca766.tar.gz dnbd3-1ee67aedd55b452c7d5851d0e39e01aef4aca766.tar.xz dnbd3-1ee67aedd55b452c7d5851d0e39e01aef4aca766.zip |
dnbd3server build success on freebsd :)
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) |