lkml.org 
[lkml]   [2001]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 2.4.15-pre9 breakage (inode.c)


On Fri, 23 Nov 2001, Linus Torvalds wrote:

> > - 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);
>
> I have to say that I like this patch better myself - the added tests are
> not sensible, and just removing them seems to be the right thing.

Test for ->s_root is bogus and had been removed - check the patch I've sent.

However, that variant suffers from the following problem: if ->read_super()
fails after it had done _any_ iget() (root inode, journal, whatever) -
we are screwed. Sure, we do iput(). And then we have inode stuck in icache,
with ->i_sb pointing nowhere. When it finally gets evicted we call
inode->i_sb->s_op->clear_inode(). Oops...

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

\
 
 \ /
  Last update: 2005-03-22 13:13    [W:0.101 / U:1.108 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site