[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080103141120.GC19363@elte.hu>
Date: Thu, 3 Jan 2008 15:11:20 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Pekka J Enberg <penberg@...helsinki.fi>
Cc: Jiri Slaby <jirislaby@...il.com>,
Al Viro <viro@...iv.linux.org.uk>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: isofs oops - d_splice_alias+0x1f (2.6.24-rc5-mm1)
* Pekka J Enberg <penberg@...helsinki.fi> wrote:
> return ERR_PTR(-EACCES);
> }
> + if (is_bad_inode(inode)) {
> + unlock_kernel();
> + iput(inode);
> + return ERR_PTR(-ENOENT);
> + }
fs/isofs/rock.c:474 parse_rock_ridge_inode_internal() seems buggy too:
reloc =
isofs_iget(inode->i_sb,
ISOFS_I(inode)->i_first_extent,
0);
if (!reloc)
goto out;
it should probably do "!reloc || is_bad_inode(inode)" as well.
and there are about 5 other callsites as well that only check for a NULL
return.
perhaps the better fix would be to add this to inode.c:isofs_iget():
if (inode && (inode->i_state & I_NEW)) {
sb->s_op->read_inode(inode);
unlock_new_inode(inode);
if (s_bad_inode(inode))
inode = NULL;
}
?
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists