From: Olaf van der Spek <olaf@xwis.net>
To: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@infradead.org>, xfs@oss.sgi.com
Subject: Re: fsync, rename, O_ATOMIC/O_PONIES
Date: Mon, 05 Mar 2012 16:44:26 +0100 [thread overview]
Message-ID: <4F54DF5A.4090301@xwis.net> (raw)
In-Reply-To: <20120305010203.GK5091@dastard>
On 5-3-2012 2:02, Dave Chinner wrote:
>> Argh, come on.
>> That's not real and it's not complete. tmpfile is undefined, errors
>> aren't handled and you have lots of unlisted assumptions or
>> regressions.
>
> The above is perfectly reasonable psuedo code for quickly describing
> how to safely overwriting a file. If you want to know about error
> handling and assumptions, read the man pages for operation.
But I don't have a psuedo code compiler. Using psuedo code hides
complexity and bugs. Even the code from Jeff Moyer in the article you're
refering too contained bugs.
Don't you think it's quite strange there's no real code available to
handle this widespread problem?
> To make it easy for you, I'll just point out this has already been
> dealt with early in in the LWN thread for that article, here's the
> link to the comment and the relevant LWN article providing you with
> all the information you want:
>
> http://lwn.net/Articles/476606/
> https://lwn.net/Articles/457667/
It also doesn't handle the assumptions / regressions:
http://lwn.net/Articles/485182/
Assuming the target is not a symlink to a different volume
Assuming you are allowed to create the tmp file
Assuming you are allowed to overwrite an existing file having the same
name as your tmp file
Assuming it's ok to reset meta-data, like file owner, permissions, acls,
creation timestamp, etc.
Assuming the performance regression due to fsync is ok (request was for
atomic, not durable)
> And that my stance on this atomic rename subject is simply this: If
> we want to change reanme behaviour, then the filesystem is not the
> right place to do it - atomic rename semantics need to be defined
> and enforced at the VFS. See here:
>
> http://lwn.net/Articles/479152/
I don't think rename is part of the solution.
Olaf
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2012-03-05 15:44 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-02 12:39 fsync, rename, O_ATOMIC/O_PONIES Olaf van der Spek
2012-03-02 13:12 ` Christoph Hellwig
2012-03-04 17:14 ` Olaf van der Spek
2012-03-05 1:02 ` Dave Chinner
2012-03-05 15:44 ` Olaf van der Spek [this message]
2012-03-05 23:17 ` Dave Chinner
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=4F54DF5A.4090301@xwis.net \
--to=olaf@xwis.net \
--cc=david@fromorbit.com \
--cc=hch@infradead.org \
--cc=xfs@oss.sgi.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