From: Linus Torvalds <torvalds@linux-foundation.org>
To: Roland Dreier <rdreier@cisco.com>
Cc: Joel Becker <Joel.Becker@oracle.com>,
Mark Fasheh <mfasheh@suse.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
ocfs2-devel@oss.oracle.com
Subject: Re: [GIT PULL] ocfs2 changes for 2.6.32
Date: Thu, 17 Sep 2009 13:55:44 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.2.01.0909171351090.4950@localhost.localdomain> (raw)
In-Reply-To: <adapr9pb8wa.fsf@cisco.com>
On Thu, 17 Sep 2009, Roland Dreier wrote:
> > > I guess one bit of semantics to figure out is what happens if copyfile()
> > > does the async case but then copyfile_ctrl() returns an error halfway
> > > through... is the state of the dest file just undefined?
>
> > I think that's the one that most filesystems would prefer. Maybe the file
> > is there, it's just that it's only half copied because the filesystem
> > filled up.
>
> Makes sense... and even having the state of having the file half-copied
> is not really well-defined since a filesystem may want to optimize
> things by copying out of order etc.
Yeah.
The thing to remember is that where you'd use a non-atomic 'copyfile()'
system call is as a replacement for just doing the same thing by hand in
user space, so any users of this system call would basically have to
handle the "oops, it failed with ENOSPC in the middle" _anyway_.
So there is no downside to saying "ok, it failed in the middle, you clean
up the result", because the user needs to support that anyway.
The ones that use copyfile for filesystem-specific snapshots and use the
ATOMIC bit to say so obviously don't have this issue. But they aren't
looking for a "faster 'cp'" thing - they're looking for very specific
semantics, and for the ATOMIC case we can provide those kinds of nice
atomic "everything or nothing" semantics.
So the fact that some random server-side copy over CIFS/NFS may need
cleanup by the user after failing at half-point is not actually a
downside. It doesn't affect Joel's kind of fancy use.
Linus
next prev parent reply other threads:[~2009-09-17 20:56 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-11 20:04 Joel Becker
2009-09-14 21:32 ` Linus Torvalds
2009-09-14 22:14 ` Joel Becker
2009-09-14 23:27 ` Linus Torvalds
2009-09-15 0:04 ` Joel Becker
2009-09-15 0:31 ` Linus Torvalds
2009-09-15 0:54 ` Joel Becker
2009-09-15 2:01 ` Linus Torvalds
2009-09-15 4:05 ` Arjan van de Ven
2009-09-15 4:35 ` Joel Becker
2009-09-15 4:06 ` Joel Becker
2009-09-15 16:30 ` Linus Torvalds
2009-09-15 21:45 ` Joel Becker
2009-09-16 4:20 ` Linus Torvalds
2009-09-16 4:40 ` Joel Becker
2009-09-17 16:29 ` Linus Torvalds
2009-09-17 16:38 ` Arjan van de Ven
2009-09-17 20:16 ` Linus Torvalds
2009-09-17 18:40 ` Roland Dreier
2009-09-17 20:17 ` Linus Torvalds
2009-09-17 20:34 ` Joel Becker
2009-09-18 0:29 ` Linus Torvalds
2009-09-17 20:42 ` Roland Dreier
2009-09-17 20:55 ` Linus Torvalds [this message]
2009-09-18 1:43 ` [Ocfs2-devel] " Joel Becker
2009-09-18 13:34 ` Pádraig Brady
2009-09-18 18:37 ` Joel Becker
2009-09-18 17:23 ` Peter W. Morreale
2009-09-18 18:39 ` Joel Becker
2009-09-15 6:44 ` Miklos Szeredi
2009-09-23 11:02 ` [GIT PULL] ocfs2 changes for 2.6.32 (take 2, no syscall) Joel Becker
2009-09-22 0:51 [GIT PULL] ocfs2 changes for 2.6.32 George Spelvin
2009-09-22 3:28 George Spelvin
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=alpine.LFD.2.01.0909171351090.4950@localhost.localdomain \
--to=torvalds@linux-foundation.org \
--cc=Joel.Becker@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mfasheh@suse.com \
--cc=ocfs2-devel@oss.oracle.com \
--cc=rdreier@cisco.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
all inboxes | Powered by JetHome®