Proposing space management API to perform hole-punching
Ka Ho Ng
khng at freebsdfoundation.org
Thu Feb 11 19:11:59 UTC 2021
> On Feb 12, 2021, at 3:00 AM, Poul-Henning Kamp <phk at phk.freebsd.dk> wrote:
>
> --------
>
> Ka Ho Ng via freebsd-arch writes:
>
>> The proposal contains fspacectl(2), VOP_DEALLOCATE(9) and vn_deallocate(9). fspacectl(2) is a space management API that takes a file descriptor, a command value, a range and flags. The system call is responsible for doing space management operations such as punching holes, which is the only operation supported so far. [...]
>
> 1. Which other operations are/can be foreseen ?
Besides SPACECTL_DEALLOC, it would be foreseeable to implement SPACECTL_ALLOC.
>
> 2. What arguments would they need ?
The same, a tuple of offset and length.
>
> 3. Should the syscall definition take this into account already now ?
kib@ thinks it is a bonus to simplify the number of system calls in the original fdeallocate(2) +
fzero(2) draft under the same differential, as we already got posix_fallocate.
Besides, one of the consideration behind is to implement linuxulator’s fallocate, which does
also does FALLOC_FL_KEEP_SIZE.
>
> 4. Are there any existing APIs for this ?
> 5. Should we stick closely to them ? If not, why not ?
posix_fallocate. The system call however does not consider the case if file extending is not
required, nor does it do hole-punching.
>
> --
> Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
> phk at FreeBSD.ORG | TCP/IP since RFC 956
> FreeBSD committer | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by incompetence.
More information about the freebsd-arch
mailing list