Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Sat, 24 Nov 2001 01:09:17 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Sat, 24 Nov 2001 01:08:57 -0500 Received: from leibniz.math.psu.edu ([146.186.130.2]:37527 "EHLO math.psu.edu") by vger.kernel.org with ESMTP id ; Sat, 24 Nov 2001 01:08:52 -0500 Date: Sat, 24 Nov 2001 01:08:49 -0500 (EST) From: Alexander Viro To: Linus Torvalds cc: Andrea Arcangeli , linux-kernel@vger.kernel.org, Marcelo Tosatti Subject: Re: 2.4.15-pre9 breakage (inode.c) In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org 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/