From: Jan Harkes <jaharkes@cs.cmu.edu>
To: Chris Wedgwood <cw@f00f.org>
Cc: Linus Torvalds <torvalds@transmeta.com>,
linux-kernel@vger.kernel.org, Alan Cox <alan@lxorguk.ukuu.org.uk>,
Chris Mason <mason@suse.com>
Subject: Re: [PATCH] 2.4.8-pre3 fsync entire path (+reiserfs fsync semantic change patch)
Date: Sat, 4 Aug 2001 13:35:00 -0400 [thread overview]
Message-ID: <20010804133500.F22090@cs.cmu.edu> (raw)
In-Reply-To: <01080315090600.01827@starship> <Pine.GSO.4.21.0108031400590.3272-100000@weyl.math.psu.edu> <9keqr6$egl$1@penguin.transmeta.com> <20010804100143.A17774@weta.f00f.org>
In-Reply-To: <20010804100143.A17774@weta.f00f.org>
On Sat, Aug 04, 2001 at 10:01:43AM +1200, Chris Wedgwood wrote:
> On Fri, Aug 03, 2001 at 06:34:14PM +0000, Linus Torvalds wrote:
>
> fsync(int fd)
> {
> dentry = fdget(fd);
> do_fsync(dentry);
> for (;;) {
> tmp = dentry;
> dentry = dentry->d_parent;
> if (dentry == tmp)
> break;
> do_fdatasync(dentry);
> }
> }
>
> I really like this idea. Can people please try out the attached patch?
Deadly for Coda, every fsync triggers an upcall to userspace, which
costs at least 2 context switches and a whole bunch of network traffic
as updates are sent back to the server, i.e. the fact that some parent
has a new child or timestamp is not related to or interesting for this
delivery.
The existing fsync(dir) is far better and the reasons are simple and
explained multiple times throughout this far too long thread. So let me
reiterate.
- fsync(dir) is an _explicit_ indication by an application that actually
cares what precisely needs to be written to disk.
- fsync(dir) doesn't negatively affect applications that don't care.
- The proposed patch doesn't solve the 'oops I relinked the file, or I
renamed a parent' problems where the path leading to a file is lost
anyways. And the relinking is exactly what is done by both qmail and
cyrus imap, i.e. this patch wouldn't even solve the problem that is
being discussed.
- fsync(dir) doesn't write out anymore that has to be written, i.e. a
open/unlink in a temporary directory doesn't need to hit the disk if
there is an fsync in the middle (see qmail/cyrus syscall paths in a
previous email)
- We don't need to modify the code to make fsync(dir) work! If it turns
out to be too slow, let's fix fsync(dir) to be more efficient.
Jan
next prev parent reply other threads:[~2001-08-04 17:35 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <0108030507330F.00440@starship>
[not found] ` <Pine.GSO.4.21.0108022312211.1494-100000@weyl.math.psu.edu>
2001-08-03 13:09 ` intermediate summary of ext3-2.4-0.9.4 thread Daniel Phillips
2001-08-03 14:43 ` Horst von Brand
2001-08-03 17:49 ` Mike Castle
2001-08-04 3:23 ` Daniel Phillips
2001-08-03 18:08 ` Alexander Viro
2001-08-03 18:26 ` Daniel Phillips
2001-08-03 18:53 ` Alexander Viro
2001-08-03 20:50 ` Daniel Phillips
2001-08-04 3:43 ` Matthias Andree
2001-08-03 18:34 ` Linus Torvalds
2001-08-03 22:01 ` [PATCH] 2.4.8-pre3 fsync entire path (+reiserfs fsync semantic change patch) Chris Wedgwood
2001-08-03 22:33 ` Alexander Viro
2001-08-03 23:16 ` Chris Wedgwood
2001-08-03 23:23 ` Alexander Viro
2001-08-04 3:53 ` Matthias Andree
2001-08-04 5:48 ` Alexander Viro
2001-08-03 22:45 ` Alexander Viro
2001-08-03 23:09 ` Chris Wedgwood
2001-08-03 23:15 ` Alexander Viro
2001-08-03 23:20 ` Chris Wedgwood
2001-08-03 23:25 ` Alexander Viro
2001-08-03 23:35 ` Chris Wedgwood
2001-08-03 23:41 ` Alexander Viro
2001-08-03 23:46 ` Chris Wedgwood
2001-08-03 23:53 ` Alexander Viro
2001-08-04 7:45 ` [PATCH] 2.4.8-pre3 fsync entire path (+reiserfs fsync semanticchange patch) Hans Reiser
2001-08-04 18:31 ` Chris Wedgwood
2001-08-05 1:47 ` Alexander Viro
2001-08-08 17:22 ` [PATCH] 2.4.8-pre3 fsync entire path (+reiserfs fsync semanticchangepatch) Hans Reiser
2001-08-03 23:42 ` [PATCH] 2.4.8-pre3 fsync entire path (+reiserfs fsync semantic change patch) Alan Cox
2001-08-03 23:44 ` Chris Wedgwood
2001-08-04 1:08 ` Andrew Morton
2001-08-04 1:19 ` Chris Wedgwood
2001-08-04 1:45 ` Andrew Morton
2001-08-04 4:04 ` Matthias Andree
2001-08-04 18:30 ` Chris Wedgwood
2001-08-05 12:15 ` Matthias Andree
2001-08-05 12:32 ` Chris Wedgwood
2001-08-05 13:02 ` Matti Aarnio
2001-08-04 21:07 ` Andrew Morton
2001-08-04 21:07 ` Andrew Morton
2001-08-05 7:25 ` Chris Wedgwood
2001-08-09 13:25 ` Matthias Andree
2001-08-04 17:35 ` Jan Harkes [this message]
2001-08-04 18:18 ` Chris Wedgwood
2001-08-06 15:02 ` Chris Mason
2001-08-06 20:48 ` Chris Wedgwood
2001-08-03 22:29 ` Anton Altaparmakov
2001-08-03 23:06 ` Chris Wedgwood
2001-08-06 15:23 ` looking for resources for designing loopback filesystem dave-mlist
2001-08-06 16:11 ` Ville Herva
2001-08-03 18:36 ` intermediate summary of ext3-2.4-0.9.4 thread Matthias Andree
2001-08-03 19:16 ` Alexander Viro
2001-08-04 3:40 ` fdatasync(2) is also there (was: intermediate summary of ext3-2.4-0.9.4 thread) Matthias Andree
2001-08-05 0:28 ` Mike Castle
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=20010804133500.F22090@cs.cmu.edu \
--to=jaharkes@cs.cmu.edu \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=cw@f00f.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mason@suse.com \
--cc=torvalds@transmeta.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