From: Andrea Arcangeli <andrea@suse.de>
To: Alexander Viro <viro@math.psu.edu>
Cc: Linus Torvalds <torvalds@transmeta.com>,
linux-kernel@vger.kernel.org,
Marcelo Tosatti <marcelo@conectiva.com.br>
Subject: Re: 2.4.15-pre9 breakage (inode.c)
Date: Sat, 24 Nov 2001 08:44:55 +0100 [thread overview]
Message-ID: <20011124084455.B1419@athlon.random> (raw)
In-Reply-To: <20011124081217.A1419@athlon.random> <Pine.GSO.4.21.0111240213450.4000-100000@weyl.math.psu.edu>
In-Reply-To: <Pine.GSO.4.21.0111240213450.4000-100000@weyl.math.psu.edu>; from viro@math.psu.edu on Sat, Nov 24, 2001 at 02:30:15AM -0500
On Sat, Nov 24, 2001 at 02:30:15AM -0500, Alexander Viro wrote:
>
>
> On Sat, 24 Nov 2001, Andrea Arcangeli wrote:
>
> > if the method or the s_op isn't defined it will do nothing, if it is
> > defined it'd better do something not wrong because the fs just did an
> > iget within read_super. I don't see obvious troubles and the above looks
> > better than making iput more complex (and nitpicking slower 8).
>
> 2.4.15-pre8:
>
> if (!list_empty(&inode->i_hash)) {
> FOO
> return;
> } else {
> BAR
> }
>
> 2.4.15+patch:
>
> if (!list_empty(&inode->i_hash)) {
> FOO
> if (!sb || sb->s_flags & MS_ACTIVE)
> return;
> write_inode_now(inode, 1);
> spin_lock(&inode_lock);
> inodes_stat.nr_unused--;
> list_del_init(&inode->i_hash);
> }
> BAR
>
> Notice that it fixes _all_ problems with stale inodes, with only one rule
> for fs code - "don't call iput() when ->clear_inode() doesn't work". Your
> variant requires funnier things - "if at some point ->clear_inode()
> may stop working make sure to call invalidate_inodes()" in addition to
> the rule above.
the rule I add is "if ->clear_inode is really needed, just don't clear
s_op before returning null from read_super" and that requirement looks
fine.
>
> Frankly, I'd prefer fix that provides less possibilities for fsckup
> in fs code and requires less analysis.
I think right fix is invalidate_inodes() in read_super fail path so I
think it worth the short analysis, and that fail path was just buggy, so
it shouldn't get worse at least :).
Andrea
next prev parent reply other threads:[~2001-11-24 7:45 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-11-23 21:22 2.4.15-pre9 breakage (inode.c) Alexander Viro
2001-11-23 21:42 ` Jeff Merkey
2001-11-23 21:51 ` [PATCH][CFT] " Alexander Viro
2001-11-23 22:06 ` Alexander Viro
2001-11-23 22:34 ` Russell King
2001-11-23 22:35 ` Phil Sorber
2001-11-23 22:49 ` Alexander Viro
2001-11-23 23:05 ` Andreas Dilger
2001-11-23 23:35 ` Russell King
2001-11-24 1:48 ` Linus Torvalds
2001-11-24 5:47 ` Andrea Arcangeli
2001-11-24 5:55 ` Linus Torvalds
2001-11-24 6:08 ` Alexander Viro
2001-11-24 6:26 ` Andrea Arcangeli
2001-11-24 6:31 ` Alexander Viro
2001-11-24 6:37 ` Alexander Viro
2001-11-24 6:50 ` Andrea Arcangeli
2001-11-24 6:58 ` Alexander Viro
2001-11-24 7:01 ` Andrea Arcangeli
2001-11-24 7:06 ` Alexander Viro
2001-11-24 7:12 ` Andrea Arcangeli
2001-11-24 7:30 ` Alexander Viro
2001-11-24 7:44 ` Andrea Arcangeli [this message]
2001-11-24 8:05 ` Alexander Viro
2001-11-24 8:21 ` Andrea Arcangeli
2001-11-24 8:38 ` Alexander Viro
2001-11-24 9:38 ` Andrea Arcangeli
2001-11-24 9:56 ` Alexander Viro
2001-11-24 10:25 ` Andrea Arcangeli
2001-11-24 6:44 ` Andrea Arcangeli
2001-11-24 6:51 ` Alexander Viro
2001-11-24 9:00 ` Russell King
2001-11-24 10:20 ` Christian Bornträger
2001-11-24 6:04 ` Alexander Viro
2001-11-24 6:20 ` Andrea Arcangeli
2001-11-24 6:29 ` Alexander Viro
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=20011124084455.B1419@athlon.random \
--to=andrea@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=torvalds@transmeta.com \
--cc=viro@math.psu.edu \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.