linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Viro <viro@math.psu.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: Fri, 3 Aug 2001 18:33:37 -0400 (EDT)	[thread overview]
Message-ID: <Pine.GSO.4.21.0108031814510.5264-100000@weyl.math.psu.edu> (raw)
In-Reply-To: <20010804100143.A17774@weta.f00f.org>



On Sat, 4 Aug 2001, Chris Wedgwood wrote:

> I really like this idea. Can people please try out the attached patch?
> 
> Please note, it contains a couple of things that need not be there in
> the final version.

Like an oopsable race absolutely trivial to exploit for any user with write
access to fs?

	a) dentry can freed under you. Just rename the parent while you
are syncing it. Then you'll block on attempt to take ->i_sem on
grandparent and merrily go to hell when parent will be moved away and
rename(2) will do dput() on grandparent.

	b) access to ->d_parent requires at least one of the following:
dcache_lock, BKL, i_sem or ->i_zombie on inode of parent.

	c) as it is, you will get a hell of IO load on a dumb fs.
dumb == anything that uses file_fsync() as ->fsync() of directories.
You'll do full sync of fs on every bloody step.

	d) sequence of inodes you sync has only one property guaranteed:
at some moment nth inode is a parent of (n-1)th. That's it. E.g. it's easy
to get a situation when _none_ of the inodes you sync had ever been a
grandparent of the original inode.


  reply	other threads:[~2001-08-03 22:34 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 [this message]
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
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=Pine.GSO.4.21.0108031814510.5264-100000@weyl.math.psu.edu \
    --to=viro@math.psu.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;
as well as URLs for NNTP newsgroup(s).