public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Alexander Viro <viro@math.psu.edu>
Cc: linux-kernel@vger.kernel.org,
	Linus Torvalds <torvalds@transmeta.com>,
	Marcelo Tosatti <marcelo@conectiva.com.br>
Subject: Re: 2.4.15-pre9 breakage (inode.c)
Date: Sat, 24 Nov 2001 06:47:39 +0100	[thread overview]
Message-ID: <20011124064739.J1324@athlon.random> (raw)
In-Reply-To: <Pine.GSO.4.21.0111231606150.2422-100000@weyl.math.psu.edu>
In-Reply-To: <Pine.GSO.4.21.0111231606150.2422-100000@weyl.math.psu.edu>; from viro@math.psu.edu on Fri, Nov 23, 2001 at 04:22:17PM -0500

On Fri, Nov 23, 2001 at 04:22:17PM -0500, Alexander Viro wrote:
> 	Sigh...  Supposed fix to problems with stale inodes was completely
> broken.
> 
> 	What we need is "if we are doing last iput() on fs that is getting
> shut, sync it and don't leave it in cache".  And yes, we have a similar

What's this "stale inode" problem? invalidate_inodes in kill_super will
obviously get rid of all of them or we would be getting the
"selfdestructing in 5 seconds" message all the time.

I'm probably missing something, but actually to me it seems the patch in
pre9 plus this your further fix are completly superflous. And if you
mean that there's a race in the sync+invalidate_inode sequence (I didn't
checked) that should be serialized at the higher dcache/mnt layer,
without messing and slowing down all of the iput()s just for the unmount
case where the fsync+invalidate can be serialized by design at the mnt
layer without iput intervention. I actually believe this is the right
fix and it should work fine as far as anything <= 2.4.15pre8 was working
correctly. I'm going to release a 2.4.15aa1 with the below fix applied
(while waiting your comments of course, thanks!).

--- 2.4.15pre9aa1/fs/inode.c.~1~	Thu Nov 22 20:48:23 2001
+++ 2.4.15pre9aa1/fs/inode.c	Sat Nov 24 06:30:20 2001
@@ -1071,7 +1071,7 @@
 			if (inode->i_state != I_CLEAR)
 				BUG();
 		} else {
-			if (!list_empty(&inode->i_hash) && sb && sb->s_root) {
+			if (!list_empty(&inode->i_hash)) {
 				if (!(inode->i_state & (I_DIRTY|I_LOCK))) {
 					list_del(&inode->i_list);
 					list_add(&inode->i_list, &inode_unused);

Andrea

  parent reply	other threads:[~2001-11-24  5:48 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 [this message]
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
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=20011124064739.J1324@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox