Instead of adding more mess to change_file_space it might be a good idea to pull my "refactor the preallocation and hole punching code" series from December in first.