Thread (19 messages) 19 messages, 4 authors, 2008-10-22

Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17)

From: Dave Chinner <david@fromorbit.com>
Date: 2008-10-22 21:10:45
Also in: linux-xfs, lkml

On Wed, Oct 22, 2008 at 06:13:51AM -0400, Christoph Hellwig wrote:
On Wed, Oct 22, 2008 at 07:25:50PM +1100, Dave Chinner wrote:
quoted
quoted
Basically the above commit moved xfs_ilock() inside
radix_tree_preload()/radix_tree_preload_end(), which means we are
taking a rwsem() while we have an elevated preempt count. I'll
get a patch out to fix it.
This really needs a warning.  Then again I don't really understand this
as the point of radix_tree_preload was that we can do the actual
radix-tree under a lock, or not?
Right - the preload allows us to do GFP_KERNEL allocations for radix
tree nodes and use a spinlock for inserts into the tree. We could
drop the preload stuff if we initialised the radix tree to use
GFP_ATOMIC allocations for radix tree nodes, but that is more likely
to lead to insert failures under low memory conditions compared to
the preload method.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help