next-20090220: XFS, IMA: BUG: sleeping function called from invalid context at mm/slub.c:1613

Christoph Hellwig hch at infradead.org
Tue Feb 24 13:14:29 CST 2009


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.




More information about the xfs mailing list