Uring.Fallocate_flagsMode flags controlling the behaviour of fallocate. The empty set allocates the range as for posix_fallocate(3), extending the file size if necessary. Flags are combined with ( + ).
val keep_size : tkeep_size allocates the range but does not change the file size, so a subsequent write into the range will not need to allocate blocks.
val punch_hole : tpunch_hole deallocates the range (creating a hole), reading back as zeroes. Must be combined with keep_size.
val collapse_range : tcollapse_range removes the range from the file without leaving a hole, shifting any data beyond it downwards.
val zero_range : tzero_range converts the range to zeroes, allocating blocks as needed. Combine with keep_size to avoid changing the file size.
val insert_range : tinsert_range inserts a hole of len bytes at off, shifting existing data beyond off upwards.
unshare_range unshares any shared blocks within the range, for example on a reflinked or snapshotted file.
val write_zeroes : twrite_zeroes zeroes the range such that subsequent reads return zeroes (requires recent kernel and filesystem support).