Re: [PATCH] adding per sb inode list to make invalidate_inodes()faster

From: Linus Torvalds
Date: Thu Sep 09 2004 - 10:57:33 EST




On Thu, 9 Sep 2004, Kirill Korotaev wrote:
>
> This patch fixes the problem that huge inode cache
> can make invalidate_inodes() calls very long. Meanwhile
> lock_kernel() and inode_lock are being held and the system
> can freeze for seconds.

Hmm.. I don't mind the approach per se, but I get very nervous about the
fact that I don't see any initialization of "inode->i_sb_list".

Yes, you do a

list_add(&inode->i_sb_list, &sb->s_inodes);

in new_inode(), but there are a ton of users that allocate inodes other
ways, and more importantly, even if this was the only allocation function,
you do various "list_del(&inode->i_sb_list)" things which leaves the inode
around but with an invalid superblock list.

So at the very _least_, you should document why all of this is safe very
carefully (I get nervous about fundamental FS infrastructure changes), and
it should be left to simmer in -mm for a longish time to make sure it
really works..

Call me chicken.

Linus "tweet tweet" Torvalds
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/