Messages in this thread | | | Subject | Re: Possible deadlock in jfs_imap.c? | From | Dave Kleikamp <> | Date | Sat, 23 May 2009 20:26:50 -0500 |
| |
On Sat, 2009-05-23 at 17:19 +0200, Jan Kucera wrote: > Hi, > > for my master thesis, I've designed static checker for finding deadlocks in C. > My tool found some possible deadlock in file fs/jfs/jfs_imap.c > between JFS_IP(ipimap)->commit_mutex and imap->im_aglock[agno]. > > Reason of this problem is probably missed unlocking of > JFS_IP(ipimap)->commit_mutex in branch starting at line 2564 which > leaves JFS_IP(ipimap)->commit_mutex locked: > > in function diNewIAG(..) > locking mutex_lock(&JFS_IP(ipimap)->commit_mutex) at line 2540 > condition at line 2543 is false > condition at line 2564 is true > goto out: at 2579 > IAGFREE_UNLOCK(imap); at line 2654 > return from diNewIAG(..) at line 2656 > > Version of kernel is 2.6.28 (maybe this code is in newer versions too). > Could someone confirm, that this is a real bug? Thank you for your time.
Yes, it looks like a real bug. As the comment states, it's an unlikely error path. This would explain how it went undetected this long. Should be fixed anyway.
Thanks, Shaggy -- David Kleikamp IBM Linux Technology Center
| |