On Wed, 24 Jun 2020, Larry McVoy wrote:
In the end,
early NFS was notorious for putting 'holes' in the files
because of the automatic seek in every operation and errors not coming
until close(2) time.
You have no idea how many of those holes that 16 bit SCCS checksum has
found (BitKeeper kept it).
Aren't holes part of the file system semantics? Seek beyond EOF, write a
block, and you've created unallocated holes. Of course, they are filled
with zeroes as soon as you copy the file... I did fiddle with "cp" to
detect those holes and preserve them, but gave up for some reason
(performance hit in checking for all-zero blocks, I think, along with some
weird problem with the last block being all zeroes).
I used NFS when it first appeared and got bitten quite badly; I've never
really trusted it ever since, but I understand that it's vastly improved.
-- Dave