On 12/13/2012 07:30 AM, Corinna Vinschen wrote:
Below is my cut on the issue. It introduces a "sparse" mount option and
sparsifies a file only if this mount option is set. I also slightly
improved the code in fhandler_base::write and ftruncate so that it will
not try to set the sparse flag on already sparse files.
The code compiles, so it's basically correct. It's just not tested. ;)
Also untested (so far) on my end, but I can agree to this - anyone that
_wants_ sparse files (such as for virtual disk image) will have to
enable that mount point option for the directory of those files in
question, but no one else is forced to use them. As sparse files are
_supposed_ to be an optimization, not being sparse is not a loss in
functionality, just in potential optimizations; but if Windows is not
taking advantage of optimizations even when a file IS sparse, then that
argues that we aren't losing much.
It should not be too hard for me to rig the coreutils testsuite to
ensure that its tests of sparse operations are done on a mount
explicitly set up to allow sparse files.