Re: 2.6.31-rc8 JFS inconsistent lock state

From: Dave Kleikamp
Date: Fri Sep 04 2009 - 11:25:05 EST


On Thu, 2009-09-03 at 08:18 +0100, Frank A. Kingswood wrote:
> Frank A. Kingswood wrote:
>
> > I'm running jfs on md and got this error. The system is still usable
> > afterwards (and has not been rebooted yet) so I could provide more
> > information if needed.
> >
> > The system has occasionally had hard crashes during file access (perhaps
> > starting with about 2.6.29) and these may be related.
>
> The same happens with 2.6.31-rc8
>
> Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
> ... MAX_LOCKDEP_SUBCLASSES: 8
> ... MAX_LOCK_DEPTH: 48
> ... MAX_LOCKDEP_KEYS: 8191
> ... CLASSHASH_SIZE: 4096
> ... MAX_LOCKDEP_ENTRIES: 16384
> ... MAX_LOCKDEP_CHAINS: 32768
> ... CHAINHASH_SIZE: 16384
> memory used by lock dependency info: 6207 kB
> per task-struct memory footprint: 2688 bytes
>
> ...a while later...

I looked at this a while back:

http://lkml.org/lkml/2009/5/18/358

I didn't get a response to that, and I didn't follow up. I guess it's
time to get back on it. I'll try to recreate the warning and see if
this patch helps:

diff --git a/mm/filemap.c b/mm/filemap.c
index ccea3b6..59f5406 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1702,7 +1702,8 @@ repeat:
page = page_cache_alloc_cold(mapping);
if (!page)
return ERR_PTR(-ENOMEM);
- err = add_to_page_cache_lru(page, mapping, index, GFP_KERNEL);
+ err = add_to_page_cache_lru(page, mapping, index,
+ mapping_gfp_mask(mapping));
if (unlikely(err)) {
page_cache_release(page);
if (err == -EEXIST)

--
David Kleikamp
IBM Linux Technology Center

--
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/