From: "Jörn Engel" <joern@logfs.org>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Zach Brown <zab@redhat.com>,
"Myklebust, Trond" <Trond.Myklebust@netapp.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Ric Wheeler <rwheeler@redhat.com>,
Linux FS Devel <linux-fsdevel@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Chris L. Mason" <clmason@fusionio.com>,
Christoph Hellwig <hch@infradead.org>,
Alexander Viro <aviro@redhat.com>,
"Martin K. Petersen" <mkp@mkp.net>,
Hannes Reinecke <hare@suse.de>, Joel Becker <jlbec@evilplan.org>
Subject: Re: New copyfile system call - discuss before LSF?
Date: Tue, 26 Feb 2013 16:02:32 -0500 [thread overview]
Message-ID: <20130226210232.GA19510@logfs.org> (raw)
In-Reply-To: <512BD44C.40907@amacapital.net>
On Mon, 25 February 2013 13:14:52 -0800, Andy Lutomirski wrote:
>
> I thought the first thing people would ask for is to atomically create a
> new file and copy the old file into it (at least on local file systems).
> The idea is that nothing should see an empty destination file, either
> by race or by crash. (This feature would perhaps be described as a
> pony, but it should be implementable.)
Having already wasted many week trying to implement your pony, I would
consider it about as possible as winning the lottery three times in a
row. It clearly is in theory and yet,...
If you take a filesystem like ext[34] you are out of luck. In those
filesystems it may not even be theoretically possible to get the
cleanup right for pathological cases. And if you ignore pathological
cases and depend on userspace to do the cleanup for you, you have to
do ABI extentions that I don't want to mention with Al on Cc:. My
personal notebook ran such a kernel for several years until hardware
improved to a point that I no longer wanted to forward-port the
patches. It worked but it was far from pretty.
If you have a filesystem where you can simply bumb a reference count
to copy the file content, implementation is fairly straightforward.
But having a system call that is effectively limited to btrfs means
pretty much noone will use it - beside the people looking for
potential kernel exploits.
So my vote clearly goes to some variant of sendfile or splice.
Jörn
--
Man darf nicht das, was uns unwahrscheinlich und unnatürlich erscheint,
mit dem verwechseln, was absolut unmöglich ist.
-- Carl Friedrich Gauß
next prev parent reply other threads:[~2013-02-26 21:02 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-21 11:37 New copyfile system call - discuss before LSF? Ric Wheeler
2013-02-21 13:37 ` Hannes Reinecke
2013-02-21 13:51 ` Myklebust, Trond
2013-02-21 14:57 ` Ric Wheeler
2013-02-21 16:36 ` Andreas Dilger
2013-02-21 20:00 ` Paolo Bonzini
2013-02-21 20:50 ` Myklebust, Trond
2013-02-21 22:24 ` Zach Brown
2013-02-22 1:29 ` Myklebust, Trond
2013-02-23 0:32 ` Eric Wong
2013-03-30 19:45 ` Pavel Machek
2013-03-31 21:23 ` Eric Wong
2013-02-22 9:47 ` Paolo Bonzini
2013-02-22 9:52 ` Ric Wheeler
2013-02-22 18:22 ` Zach Brown
2013-02-22 22:48 ` Myklebust, Trond
2013-02-25 21:14 ` Andy Lutomirski
2013-02-25 21:49 ` Ric Wheeler
2013-02-25 21:59 ` Myklebust, Trond
2013-02-25 22:16 ` Andy Lutomirski
2013-02-25 23:28 ` Myklebust, Trond
2013-02-25 23:35 ` Andy Lutomirski
2013-02-25 23:45 ` Myklebust, Trond
2013-02-26 0:03 ` Zach Brown
2013-03-11 9:31 ` Joel Becker
2013-02-26 21:02 ` Jörn Engel [this message]
2013-02-26 22:35 ` Andy Lutomirski
2013-03-30 19:49 ` Pavel Machek
2013-03-30 20:08 ` Andreas Dilger
2013-03-30 21:45 ` Pavel Machek
2013-03-30 21:57 ` Myklebust, Trond
2013-03-30 23:21 ` Ric Wheeler
2013-03-31 2:53 ` Andreas Dilger
2013-03-31 3:52 ` Myklebust, Trond
2013-03-31 4:18 ` Andy Lutomirski
2013-03-31 4:36 ` Myklebust, Trond
2013-03-31 4:45 ` Myklebust, Trond
2013-04-01 15:49 ` J. Bruce Fields
2013-03-31 7:36 ` Pavel Machek
2013-03-31 18:27 ` Myklebust, Trond
2013-03-31 18:32 ` openat(..., AT_UNLINKED) was " Pavel Machek
2013-03-31 18:44 ` Myklebust, Trond
2013-03-31 22:50 ` Pavel Machek
2013-03-31 23:14 ` Ric Wheeler
2013-03-31 23:18 ` Pavel Machek
2013-03-31 23:28 ` Ric Wheeler
2013-03-31 23:41 ` Pavel Machek
2013-03-31 5:38 ` AEDilger Gmail
2013-03-31 8:25 ` Pavel Machek
2013-03-31 11:48 ` Pádraig Brady
2013-03-30 22:40 ` Andy Lutomirski
2013-02-21 22:05 ` Ric Wheeler
2013-02-21 22:13 ` Myklebust, Trond
2013-02-22 8:47 ` Ric Wheeler
2013-02-21 18:29 ` Jeremy Allison
2013-02-22 0:29 ` Eric Wong
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=20130226210232.GA19510@logfs.org \
--to=joern@logfs.org \
--cc=Trond.Myklebust@netapp.com \
--cc=aviro@redhat.com \
--cc=clmason@fusionio.com \
--cc=hare@suse.de \
--cc=hch@infradead.org \
--cc=jlbec@evilplan.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mkp@mkp.net \
--cc=pbonzini@redhat.com \
--cc=rwheeler@redhat.com \
--cc=zab@redhat.com \
/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;
as well as URLs for NNTP newsgroup(s).