On Jan 15, 2020, at 1:55 PM, David Howells wrote: > > Andreas Dilger wrote: > >> I think what is needed here is an fadvise/ioctl that tells the filesystem >> "don't allocate blocks unless actually written" for that file. > > Yeah - and it would probably need to find its way onto disk so that its effect > is persistent and visible to out-of-kernel tools. > > It would also have to say that blocks of zeros shouldn't be optimised away. I don't necessarily see that as a requirement, so long as the filesystem stores a "block" at that offset, but it could dedupe all zero-filled blocks to the same "zero block". That still allows saving storage space, while keeping the semantics of "this block was written into the file" rather than "there is a hole at this offset". Cheers, Andreas