On Fri, Oct 16, 2015 at 01:02:23PM +0100, P??draig Brady wrote:
Right. reflinking is transparent to the user, though its consequences are not.
Consequences being the possible extra latency or ENOSPC on CoW.
You can get all these consequences without doing the file system reflink
by using a COW file system, any dedup scheme or thinly provisioned or
COW storage devices.
Therefore reflinking should be an explicit action/flag IMHO.
This still does not make any sense, as it only prevents one of many
ways a file could do COW operations underneath. If you don't want
ENOSPC use fallocate, or the proposed COPY_FALLOC flag. If you want
care about latency you need to carefull benchmark your setup but in
general falloc / COPY_FALLOC might be a good starting point. But for
99% of the copies a reflink is exactly the right thing to do.