Hi, On Tue, Jul 30, 2024 at 07:03:50PM +0200, Florian Weimer wrote: > At the very least, we should have a variant of ftruncate that never > truncates, likely under the fallocate umbrella. It seems that that's > how posix_fallocate is used sometimes, for avoiding SIGBUS with mmap. > To these use cases, whether extents are allocated or not does not > matter. This is how/why elfutils libelf uses posix_fallocate when using ELF_C_RDWR_MMAP. The comment for it says: /* When using mmap we want to make sure the file content is really there. Only using ftruncate might mean the file is extended, but space isn't allocated yet. This might cause a SIGBUS once we write into the mmapped space and the disk is full. In glibc posix_fallocate is required to extend the file and allocate enough space even if the underlying filesystem would normally return EOPNOTSUPP. But other implementations might not work as expected. And the glibc fallback case might fail (with unexpected errnos) in some cases. So we only report an error when the call fails and errno is ENOSPC. Otherwise we ignore the error and treat it as just hint. */ Cheers, Mark