From: Chris Mason <chris.mason@oracle.com>
To: Gordan Bobic <gordan@bobich.net>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: Copy-on-write hard-links
Date: Thu, 10 Jun 2010 16:00:24 -0400 [thread overview]
Message-ID: <20100610200024.GB4366@think.oraclecorp.com> (raw)
In-Reply-To: <4C111CCC.8070103@bobich.net>
On Thu, Jun 10, 2010 at 06:11:40PM +0100, Gordan Bobic wrote:
> Is there a feature in btrfs to manually/explicitly mark hard-links
> to be copy-on-write? My understanding is that this is what happens
> when a snapshot is mounted rw and files modified.
>
> Consider this scenario:
>
> I have a base template fs. I make two snapshots of it that are
> identical. The files in the template and both snapshots are
> hard-links and have the same inode number.
>
> I change a file in one of the snapshots, and it gets copied on
> write. I make the same change in the other snapshot, and that, too,
> gets copied on write. I now have two identical files that are not
> hard-links any more.
>
> What happens if I remove one of those files and create a hard-link
> to the file in the other snapshot?
I'm afraid you can't do this. hard linking between subvolumes isn't
allowed. But, what you can do is use the clone ioctl to make a new
inode that references all of the data extents of an existing file, which
would be a kind of COW hard link.
Checkout bcp from btrfs-progs or cp --reflink from the latest..well
wherever cp comes from.
-chris
next prev parent reply other threads:[~2010-06-10 20:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-10 17:11 Copy-on-write hard-links Gordan Bobic
2010-06-10 20:00 ` Chris Mason [this message]
2010-06-10 20:20 ` Gordan Bobic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100610200024.GB4366@think.oraclecorp.com \
--to=chris.mason@oracle.com \
--cc=gordan@bobich.net \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.