File size checks fails and I haven't figured out why, but next I'd look into how `posix_fallocate` works on alpine linux.

Log:

```
$ cat /etc/alpine-release 
3.9.2

$ git log --oneline -1
e45b7f20e Merge #15618: refactor: Remove unused function

$ ./src/test/test_bitcoin -t flatfile_tests
Running 4 test cases...
Version using posix_fallocate
test/flatfile_tests.cpp(94): error: in "flatfile_tests/flatfile_allocate": check fs::file_size(seq.FileName(FlatFilePos(0, 0))) == 100 has failed [0 != 100]
test/flatfile_tests.cpp(98): error: in "flatfile_tests/flatfile_allocate": check fs::file_size(seq.FileName(FlatFilePos(0, 99))) == 100 has failed [0 != 100]
Version using posix_fallocate
test/flatfile_tests.cpp(102): error: in "flatfile_tests/flatfile_allocate": check fs::file_size(seq.FileName(FlatFilePos(0, 99))) == 200 has failed [0 != 200]
Version using posix_fallocate
test/flatfile_tests.cpp(116): error: in "flatfile_tests/flatfile_flush": check fs::file_size(seq.FileName(FlatFilePos(0, 1))) == 100 has failed [0 != 100]

*** 4 failures are detected in the test module "Bitcoin Core Test Suite"
```
ArgsManager gArgs;
/** A map that contains all the currently held directory locks. After
 * successful locking, these will be held here until the global destructor
 * cleans them up and thus automatically unlocks them, or ReleaseDirectoryLocks
 * is called.
 */
static std::map<std::string, std::unique_ptr<fsbridge::FileLock>> dir_locks;
static std::mutex cs_dir_locks;
bool LockDirectory(const fs::path& directory, const std::string lockfile_name, bool probe_only)
{
    std::lock_guard<std::mutex> ulock(cs_dir_locks);
    fs::path pathLockFile = directory / lockfile_name;
    
    if (dir_locks.count(pathLockFile.string())) {
        return true;
    }
    
    FILE* file = fsbridge::fopen(pathLockFile, "a");
    if (file) fclose(file);
    auto lock = MakeUnique<fsbridge::FileLock>(pathLockFile);
    if (!lock->TryLock()) {
        return error("Error while attempting to lock directory %s: %s", directory.string(), lock->GetReason());
    }
    if (!probe_only) {
        
        dir_locks.emplace(pathLockFile.string(), std::move(lock));
    }
    return true;
}
void UnlockDirectory(const fs::path& directory, const std::string& lockfile_name)