mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-05-02 16:01:58 +02:00
Merge #15650: Handle the result of posix_fallocate system call
5d35ae3326 Handle the result of posix_fallocate system call (Luca Venturini) Pull request description: The system call `posix_fallocate` is not supported on some filesystems. - catches the result of posix_allocate and fall back to the default behaviour if the return value is different from 0 (success) Fixes #15624 ACKs for commit 5d35ae: MarcoFalke: utACK 5d35ae3326624da3fe5dcb4047c9a7cec6665cab sipa: utACK 5d35ae3326624da3fe5dcb4047c9a7cec6665cab, though the Yoda condition is an uncommon style in this project. hebasto: utACK 5d35ae3326624da3fe5dcb4047c9a7cec6665cab practicalswift: utACK 5d35ae3326624da3fe5dcb4047c9a7cec6665cab Tree-SHA512: 7ab3b35fb633926f28a58b2b07ffde8e31bb997c80a716b1b45ee716fe9ff4ddcef0a05810bd4423530e220cfc62f8925517d27a8b92b05a524272063e43f746
This commit is contained in:
commit
c4560a7dfe
@ -1085,11 +1085,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] = {};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user