From 65a1ec5ba5d58eaa8929e126fca12c1c00d69edf Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Sat, 2 Apr 2022 00:19:24 +0200 Subject: don't try to allocate file space for a zero size file --- zenstore/basicfile.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'zenstore/basicfile.cpp') diff --git a/zenstore/basicfile.cpp b/zenstore/basicfile.cpp index 6e60c6e9c..e795b67eb 100644 --- a/zenstore/basicfile.cpp +++ b/zenstore/basicfile.cpp @@ -352,10 +352,13 @@ BasicFile::SetFileSize(uint64_t FileSize) ThrowSystemError(Error, fmt::format("Failed to set truncate file to {} for file {}", FileSize, PathFromHandle(m_FileHandle))); } } - int Error = posix_fallocate(Fd, 0, (off_t)FileSize); - if (Error) + if (FileSize > 0) { - ThrowSystemError(Error, fmt::format("Failed to allocate space of {} for file {}", FileSize, PathFromHandle(m_FileHandle))) + int Error = posix_fallocate(Fd, 0, (off_t)FileSize); + if (Error) + { + ThrowSystemError(Error, fmt::format("Failed to allocate space of {} for file {}", FileSize, PathFromHandle(m_FileHandle))); + } } #else int Fd = int(intptr_t(m_FileHandle)); @@ -367,10 +370,13 @@ BasicFile::SetFileSize(uint64_t FileSize) ThrowSystemError(Error, fmt::format("Failed to set truncate file to {} for file {}", FileSize, PathFromHandle(m_FileHandle))); } } - int Error = posix_fallocate64(Fd, 0, (off64_t)FileSize); - if (Error) + if (FileSize > 0) { - ThrowSystemError(Error, fmt::format("Failed to allocate space of {} for file {}", FileSize, PathFromHandle(m_FileHandle))) + int Error = posix_fallocate64(Fd, 0, (off64_t)FileSize); + if (Error) + { + ThrowSystemError(Error, fmt::format("Failed to allocate space of {} for file {}", FileSize, PathFromHandle(m_FileHandle))); + } } #endif } -- cgit v1.2.3