From: Jim Meyering <jim@meyering.net>
To: "Pádraig Brady" <P@draigBrady.com>
Cc: linux-btrfs@vger.kernel.org, bug-coreutils@gnu.org,
Giuseppe Scrivano <gscrivano@gnu.org>,
Chris Mason <chris.mason@oracle.com>
Subject: Re: BTRFS file clone support for cp
Date: Thu, 30 Jul 2009 09:39:17 +0200 [thread overview]
Message-ID: <87fxcevcuy.fsf@meyering.net> (raw)
In-Reply-To: <20090730005702.GA32157@mail.oracle.com> (Joel Becker's message of "Wed, 29 Jul 2009 17:57:03 -0700")
Joel Becker wrote:
> On Wed, Jul 29, 2009 at 07:14:37PM +0100, P=C3=A1draig Brady wrote:
>> Chris Mason wrote:
>> > On Wed, Jul 29, 2009 at 03:14:49PM +0100, P=C3=A1draig Brady wrote:
>> >>
>> >> We may need to play around with fallocate()
>> >> if we want to get back to the original
>> >> cp semantics of actually allocating space
>> >> on the file system for the new file.
>> >
>> > Well, best to just use the original cp code. I was talking with
>> > Giuseppe about this as well, I think we should the option to do regular
>> > cp via a flag.
>>
>> Right. Well we can turn off this cloning by doing --sparse=3D{never,alwa=
ys}
>> but that has side effects. If we need an option then maybe we should have
>> it turn on cloning rather than restore default cp behaviour?
>> The side effects I thought of earlier, of COW without corresponding allo=
cation
>> were possible fragmentation on write or unexpected/mishandled ENOSPC.
>> Also for endangered mechanical disks, subsequent processing could
>> be slowed as the head seeks between the old and new data to be copied.
>> Perhaps these are a small price to pay, especially considering that
>> solid state disks will only be affected by the write()=3DENOSPC issue.
>>
>> At the moment we have these linking options:
>>
>> cp -l, --link #for hardlinks
>> cp -s, --symbolic-link #for symlinks
>>
>> So perhaps we should support:
>>
>> cp --link=3D{soft,hard,cow}
>> for symlink(), link() and reflink() respectively?
>> I.E. link to the name, inode or extents respectively.
>
> I've cooked up 'ln -r' for reflinks, which works for ln(1) but
> not for cp(1).
Thanks. I haven't looked, but after reading about the reflink syscall
[http://lwn.net/Articles/332802/] had come to the same conclusion:
this feature belongs with ln rather than with cp.
Besides, putting the new behavior on a new option avoids
the current semantic change we would otherwise induce in cp.
next prev parent reply other threads:[~2009-07-30 7:39 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <87d47o3fip.fsf@master.homenet>
[not found] ` <4A6CEA48.5050208@draigBrady.com>
[not found] ` <8763defuvq.fsf@meyering.net>
[not found] ` <87ws5tvrq8.fsf@master.homenet>
2009-07-27 23:40 ` BTRFS file clone support for cp Pádraig Brady
2009-07-28 20:06 ` Giuseppe Scrivano
2009-07-29 13:01 ` Chris Mason
2009-07-29 14:14 ` Pádraig Brady
2009-07-29 16:10 ` Chris Mason
2009-07-29 16:18 ` Chris Mason
2009-07-29 18:14 ` Pádraig Brady
2009-07-30 0:57 ` Joel Becker
2009-07-30 7:39 ` Jim Meyering [this message]
2009-07-30 8:21 ` Joel Becker
2009-07-30 8:40 ` Pádraig Brady
2009-07-30 16:28 ` Ric Wheeler
2009-07-30 16:48 ` Jim Meyering
2009-07-30 9:26 ` Andi Kleen
2009-07-30 10:02 ` Pádraig Brady
2009-07-30 10:16 ` Jim Meyering
2009-07-30 10:21 ` Tomasz Chmielewski
2009-07-30 10:54 ` Andi Kleen
2009-07-30 18:05 ` Joel Becker
2009-07-30 23:28 ` Pádraig Brady
[not found] ` <87k51r9sxh.fsf@master.homenet>
[not found] ` <4A70C4E0.9030104@draigBrady.com>
2009-07-30 17:28 ` Giuseppe Scrivano
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=87fxcevcuy.fsf@meyering.net \
--to=jim@meyering.net \
--cc=P@draigBrady.com \
--cc=bug-coreutils@gnu.org \
--cc=chris.mason@oracle.com \
--cc=gscrivano@gnu.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox