Can anyone think of a good reason *not* to sprinkle fallocate() calls
through as many Linux utilities as possible? E.g., programs like rsync,
tar, cpio, pax, ftp, mv, cp -- anything and everything that creates a
file with a size known in advance.
As far as I can tell, calling fallocate() when it's not supported
quickly returns an error and does no harm. So I can't even think of a
reason to only make it optional. If it's implemented as an
off-by-default option, most people would probably not know about it so
it would rarely get used. Those who do know about it would frequently
forget to use it, and choosing and learning a separate option for every
command would be painful.
Besides xfs, ext4 supports fallocate so I expect that most Linux systems
will be able to benefit from it fairly soon.