Re: [PATCH v2] vfs: __read_cache_page should use gfp argument ratherthan GFP_KERNEL

From: Dave Kleikamp
Date: Wed Dec 21 2011 - 15:56:10 EST


On 12/21/2011 02:28 PM, Andrew Morton wrote:
> On Wed, 21 Dec 2011 11:05:48 -0600
> Dave Kleikamp <dave.kleikamp@xxxxxxxxxx> wrote:
>
>> [ updated to remove now-obsolete comment in read_cache_page_gfp()]
>>
>> lockdep reports a deadlock in jfs because a special inode's rw semaphore
>> is taken recursively. The mapping's gfp mask is GFP_NOFS, but is not used
>> when __read_cache_page() calls add_to_page_cache_lru().
>
> Well hang on, it's not just a lockdep splat. The kernel actually will
> deadlock if we reenter JFS via this GFP_KERNEL allocation attempt, yes?

Yes, it could result in a real deadlock.

> Was that GFP_NOFS allocation recently added to JFS? If not then we
> should backport this deadlock fix into -stable, no?

Yes, that would make sense.

Shaggy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/