On Apr 11, 2019, at 8:57 AM, Richard Tobin <richard(a)inf.ed.ac.uk> wrote:
When did the Unix filesystem add the semantics
for "files with holes" (large,
sparse files)?
It was there in the first edition:
https://www.bell-labs.com/usr/dmr/www/pdfs/man51.pdf
You still had to read all those unallocated blocks as zeroes
if you wanted to copy such a "holey" file. I believe it was
Solaris (may be just for zfs?) that added SEEK_HOLE and
SEEK_DATA lseek whence values.
This could've been hidden if only mmap was allowed on files.
Or alternately read/write buffering was done by the kernel
or the {network,file}-server - which can avoid copying in
cases where it makes sense.