Handle the result of posix_fallocate system call

This commit is contained in:
Luca Venturini 2019-03-23 04:20:40 +00:00
parent 7b13c64645
commit 5d35ae3326

View file

@ -1089,11 +1089,12 @@ void AllocateFileRange(FILE *file, unsigned int offset, unsigned int length) {
fcntl(fileno(file), F_PREALLOCATE, &fst); fcntl(fileno(file), F_PREALLOCATE, &fst);
} }
ftruncate(fileno(file), fst.fst_length); ftruncate(fileno(file), fst.fst_length);
#elif defined(__linux__) #else
#if defined(__linux__)
// Version using posix_fallocate // Version using posix_fallocate
off_t nEndPos = (off_t)offset + length; off_t nEndPos = (off_t)offset + length;
posix_fallocate(fileno(file), 0, nEndPos); if (0 == posix_fallocate(fileno(file), 0, nEndPos)) return;
#else #endif
// Fallback version // Fallback version
// TODO: just write one byte per block // TODO: just write one byte per block
static const char buf[65536] = {}; static const char buf[65536] = {};