[PATCH] D39464: Define fs::allocate_file which preallocates disk blocks.

Rafael Avila de Espindola via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 13 10:21:13 PST 2017


Kamil Rytarowski <n54 at gmx.com> writes:

> On 13.11.2017 18:19, Rafael Avila de Espindola wrote:
>> Kamil Rytarowski via Phabricator <reviews at reviews.llvm.org> writes:
>> 
>>> krytarowski added inline comments.
>>>
>>>
>>> ================
>>> Comment at: llvm/lib/Support/Unix/Path.inc:436
>>>        return std::error_code(Err, std::generic_category());
>>> +    return make_error_code(errc::function_not_supported);
>>>    }
>>> ----------------
>>> NetBSD needs `ftruncate`(2) as a fallback for `posix_fallocate`(2).
>>>
>>> In the default setup `posix_fallocate`() returns EOPNOTSUPP.
>> 
>> Will ftruncate allocate space on netbsd? Note that it is OK for
>> allocate_file to fail. The user then has to use a buffer and write(2)
>> instead of mmap for output.
>> 
>> Cheers,
>> Rafael
>> 
>
> ftruncate(2)/NetBSD as an extension extends area and makes it
> zero-filled. It's equivalent to lseek(2) + write(2).

Cool, so an mmap of the file after a ftruncate will never crash because
of disk full, correct?

If so we could use use ftruncate on netbsd as a special case, similar to
the special case we have for OS X.

Cheers,
Rafael


More information about the llvm-commits mailing list