
A reflink is a reference-counted link.  It is created via the reflink(2)
system call on filesystems that support it.  reflink(2) works like
link(2), except that the result is two identical inodes that share their
data extents in a copy-on-write (CoW) fashion.  You can access and
modify either inode in any fashion, and the change will not affect the
other inode.  When data is changed, that region of the file is CoWed
out.

This source tree contains coreutils with ln(1) modified to create
reflinks with the '-r' option.  When you type 'make' in this top-level
directory, coreutils will be configured and ln(1) will be built.  ln(1)
will also be hard-linked to the name 'reflink'.  When invoked as
reflink(1), it automatically behaves as if the '-r' option was passed.
Thus, "ln -r foo bar" and "reflink foo bar" are identical.

Typing 'make install' in this directory will install the reflink(1)
program.  It will not install any other coreutils binaries, nor will it
overwrite the existing ln(1) program.

Once reflink support is in the kernel, we'll work on getting support
into libc and coreutils upstream.

