[systemd-devel] [PATCH/resend] Use reflinking to copy kernel

Simon McVittie simon.mcvittie at collabora.co.uk
Mon May 18 05:56:45 PDT 2015


On 18/05/15 13:15, Lennart Poettering wrote:
> --reflink=auto is the default in cp since a while.

I think you're thinking of recent mv versions, or a patched coreutils?

cp in current coreutils git never reflinks

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/cp.c#n785

unless explictly requested

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/cp.c#n957

(line numbers valid as of today's git master)

I believe the rationale is that people invoking cp(1) might expect to
have two entirely independent copies of all the file's disk blocks
afterwards, such that a kernel- or hardware-level bit-flip in one would
leave the other untouched - as opposed to reflinking, in which
*user-space* changes to one leave the other untouched. I don't
personally think that rationale is sufficiently convincing to outweigh
the simplicity of reflinking by default, but I don't maintain coreutils,
and perhaps I'd think differently if I did.

-- 
Simon McVittie
Collabora Ltd. <http://www.collabora.com/>



More information about the systemd-devel mailing list