summaryrefslogtreecommitdiffstats
path: root/src/server/fileutil.c
diff options
context:
space:
mode:
authorSebastian2016-02-10 21:53:15 +0100
committerSebastian2016-02-11 00:09:39 +0100
commit1ee67aedd55b452c7d5851d0e39e01aef4aca766 (patch)
treecaf482cd40463d5a4b15f14e5bd5b2d34bf936bd /src/server/fileutil.c
parentcleanup commits (diff)
downloaddnbd3-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.c8
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)