[Ocfs2-devel] [PATCH 1/3] fs: Document the reflink(2) system call.
Joel Becker
Joel.Becker at oracle.com
Tue May 5 10:05:34 PDT 2009
On Tue, May 05, 2009 at 02:19:07PM +0100, Jamie Lokier wrote:
> There was an attempt at something like that for ext3 a year or two ago.
> Search for "cowlink" if you're interested.
Yeah, I discussed those with Jörn Engel after my talk at LSF - I
hadn't heard of them before. cowlinks actually changed the semantic of
link(2). This does not do that.
> Instead of a circular list, a proposed implementation was to create a
> separate "host" inode on the first reflink, converting the source
> inode to a reflink inode and moving the data block references to the
> new host inode. Each reflink was simply a reference to the host
> inode, much like your design, and the host inode was only to hold the
> data blocks, with it's i_nlink counting the number of reflinks
> pointing to it.
Reflinks are not cowlinks. reflinks are new files (new inodes
in most implementations I expect) that only share the *data extents* in
a CoW fashion.
Maybe reading the wiki details of the ocfs2 implementation and
so on would be helpful?
[Overview]
http://wiki.us.oracle.com/calpg/OCFS2Reflink
[ocfs2 Implementation]
http://oss.oracle.com/osswiki/OCFS2/DesignDocs/RefcountTrees
[reflink() Itself]
http://oss.oracle.com/osswiki/OCFS2/DesignDocs/ReflinkOperation
[Use Cases]
http://oss.oracle.com/osswiki/OCFS2/DesignDocs/ReflinkUses
Joel
--
"Every day I get up and look through the Forbes list of the richest
people in America. If I'm not there, I go to work."
- Robert Orben
Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127
More information about the Ocfs2-devel
mailing list