Excerpts from Fabian Maurer's message of January 27, 2022 5:24 pm:
Hello,
first, thanks for working on this, would be a welcome improvement! Do I understand that right that it wouldn't work for ext4 and there's not really anything we could do to support it?
Regards, Fabian Maurer
ext4 does not support reflink, so copy_file_range cannot reduce disk space usage. However, it will still allow the kernel to do the file copy itself, avoiding copying the data to userspace.
Full reflink functionality with arbitrary offsets and overwrite is non-trivial to implement in the filesystem. However, we really only need the limited functionality of a whole-file reflink. This could be simulated using a hard or symbolic link which gets broken by Wine when any write occurs. However, as with reparse points, this requires modifying every file access that Wine makes, which would be a significant undertaking. Additionally, as explained in the cover letter, this would potentially break Unix-side programs modifying the Wine prefix, such as winetricks.
Alex.