xfs
[Top] [All Lists]

Re: next-20090220: XFS, IMA: BUG: sleeping function called from invalid

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: next-20090220: XFS, IMA: BUG: sleeping function called from invalid context at mm/slub.c:1613
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Tue, 24 Feb 2009 14:14:29 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20090220122242.b36a778f.akpm@xxxxxxxxxxxxxxxxxxxx>
References: <a4423d670902200300n1d1bfdeeg6daca4b32989c9d3@xxxxxxxxxxxxxx> <20090220122242.b36a778f.akpm@xxxxxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.18 (2008-05-17)
On Fri, Feb 20, 2009 at 12:22:42PM -0800, Andrew Morton wrote:
> But to fix this bug, xfs needs to stop calling inode_init_always()
> under read_lock().  Because inode_alloc_security() also can sleep (see
> new_inode_smack()).

The normal inode initialization path is fine as it's not in atomic
context, but if we relcaim a partially torn down inode in
xfs_iget_cache_hit we call inode_init_always under pag_ici_lock.

I wonder if we should just give up on trying to "recover" such
inodes.  Instead call finish_reclaim on them and restart the inode
cache lookup.

<Prev in Thread] Current Thread [Next in Thread>