Eric Sesterhenn
1558182f65
bfs: fix Lockdep warning
This fixes:
=============================================
[ INFO: possible recursive locking detected ]
2.6.27-rc5-00283-g70bb089 #68
---------------------------------------------
touch/6855 is trying to acquire lock:
(&info->bfs_lock){--..}, at: [<c02262f5>] bfs_delete_inode+0x9e/0x18c
but task is already holding lock:
(&info->bfs_lock){--..}, at: [<c0226c00>] bfs_create+0x45/0x187
other info that might help us debug this:
2 locks held by touch/6855:
#0: (&type->i_mutex_dir_key#5){--..}, at: [<c018ad13>] do_filp_open+0x10b/0x62f
#1: (&info->bfs_lock){--..}, at: [<c0226c00>] bfs_create+0x45/0x187
stack backtrace:
Pid: 6855, comm: touch Not tainted 2.6.27-rc5-00283-g70bb089 #68
[<c013e769>] validate_chain+0x458/0x9f4
[<c013bece>] ? trace_hardirqs_off+0xb/0xd
[<c013f36b>] __lock_acquire+0x666/0x6e0
[<c013f440>] lock_acquire+0x5b/0x77
[<c02262f5>] ? bfs_delete_inode+0x9e/0x18c
[<c06aab74>] mutex_lock_nested+0xbc/0x234
[<c02262f5>] ? bfs_delete_inode+0x9e/0x18c
[<c02262f5>] ? bfs_delete_inode+0x9e/0x18c
[<c02262f5>] bfs_delete_inode+0x9e/0x18c
[<c0226257>] ? bfs_delete_inode+0x0/0x18c
[<c01925e1>] generic_delete_inode+0x94/0xfe
[<c019265d>] generic_drop_inode+0x12/0x12f
[<c0191b7e>] iput+0x4b/0x4e
[<c0226d1e>] bfs_create+0x163/0x187
[<c0188b42>] vfs_create+0xa6/0x114
[<c018adb5>] do_filp_open+0x1ad/0x62f
[<c0107cdc>] ? native_sched_clock+0x82/0x96
[<c06ac309>] ? _spin_unlock+0x27/0x3c
[<c019379e>] ? alloc_fd+0xbf/0xc9
[<c06ae2f4>] ? sub_preempt_count+0x9d/0xab
[<c019379e>] ? alloc_fd+0xbf/0xc9
[<c0180391>] do_sys_open+0x42/0xb8
[<c041d564>] ? trace_hardirqs_on_thunk+0xc/0x10
[<c0180449>] sys_open+0x1e/0x26
[<c01038bd>] sysenter_do_call+0x12/0x31
=======================
The problem is that we don't unlock the bfs->lock mutex before calling
iput (we do in the other cases).
Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Cc: Tigran Aivazian <tigran@aivazian.fsnet.co.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-09-13 14:41:51 -07:00
..
2008-08-25 01:18:09 -04:00
2008-08-25 01:18:09 -04:00
2008-08-25 01:18:09 -04:00
2008-08-04 21:31:34 -07:00
2008-02-08 09:22:40 -08:00
2008-08-25 01:18:09 -04:00
2008-08-25 01:18:09 -04:00
2008-09-13 14:41:51 -07:00
2008-08-28 15:32:22 +00:00
2008-07-26 20:53:34 -04:00
2008-08-22 11:09:02 -07:00
2008-08-20 15:40:32 -07:00
2008-07-21 21:54:59 -07:00
2008-08-01 11:25:29 -04:00
2008-08-13 12:47:36 -05:00
2008-07-28 16:30:21 -07:00
2008-08-25 01:18:04 -04:00
2008-04-30 08:29:54 -07:00
2008-07-28 16:30:21 -07:00
2008-08-01 11:25:25 -04:00
2008-08-19 21:14:52 -04:00
2008-08-20 08:31:19 -07:00
2008-04-29 08:06:00 -07:00
2008-07-26 20:53:21 -04:00
2008-07-26 20:53:36 -04:00
2008-07-26 20:53:40 -04:00
2008-07-26 20:53:40 -04:00
2008-07-26 20:53:14 -04:00
2008-07-26 20:53:13 -04:00
2008-07-26 20:53:07 -04:00
2008-07-26 12:00:07 -07:00
2008-07-26 12:00:07 -07:00
2008-08-12 00:11:49 +02:00
2008-08-12 00:11:49 +02:00
2008-08-23 12:14:12 -07:00
2008-07-26 20:53:14 -04:00
2008-08-12 16:39:22 -07:00
2008-07-26 12:00:07 -07:00
2008-07-25 10:53:34 -07:00
2008-07-26 20:53:37 -04:00
2008-09-08 15:35:19 -07:00
2008-09-01 14:24:24 -04:00
2007-10-18 14:37:31 -07:00
2008-09-02 19:21:37 -07:00
2008-09-10 01:44:08 -07:00
2008-08-15 08:35:44 -07:00
2008-07-26 12:00:07 -07:00
2008-07-25 10:53:44 -07:00
2008-09-13 14:41:50 -07:00
2008-07-26 12:00:07 -07:00
2008-07-04 09:52:14 +02:00
2008-08-12 16:07:30 -07:00
2008-07-30 14:30:34 -07:00
2008-07-26 20:53:14 -04:00
2008-07-26 12:00:07 -07:00
2008-07-26 12:00:07 -07:00
2008-09-05 20:02:35 +03:00
2008-09-08 20:31:04 +02:00
2008-08-04 16:50:38 -07:00
2008-07-25 10:53:34 -07:00
2008-08-25 01:18:09 -04:00
2008-07-26 20:53:40 -04:00
2008-07-24 10:47:28 -07:00
2008-07-26 20:53:28 -04:00
2008-07-26 20:53:14 -04:00
2008-07-26 12:00:08 -07:00
2008-07-28 18:10:28 +09:00
2008-07-26 12:00:08 -07:00
2008-04-29 08:06:04 -07:00
2008-08-11 20:17:55 +09:00
2008-08-20 15:40:31 -07:00
2008-04-29 08:06:04 -07:00
2008-07-26 12:00:08 -07:00
2008-07-28 16:30:21 -07:00
2008-08-27 09:50:19 +02:00
2008-08-01 11:25:31 -04:00
2008-08-27 09:50:19 +02:00
2008-06-20 14:05:53 -06:00
2008-01-30 13:31:46 +01:00
2008-07-25 10:53:34 -07:00
2008-08-25 01:18:08 -04:00
2008-08-25 01:18:05 -04:00
2008-02-14 21:17:09 -08:00
2008-07-26 12:00:06 -07:00
2008-05-01 13:08:16 -04:00
2008-08-01 11:25:25 -04:00
2008-04-29 08:06:05 -07:00
2008-07-24 10:47:29 -07:00
2008-08-12 16:07:30 -07:00
2008-07-28 16:30:20 -07:00
2008-08-01 11:25:24 -04:00
2008-07-26 20:53:06 -04:00
2008-07-26 20:53:40 -04:00
2008-08-01 11:25:23 -04:00
2008-07-14 19:10:52 +03:00
2008-08-15 08:35:44 -07:00
2008-07-26 20:53:34 -04:00
2008-02-06 10:41:07 -08:00
2008-04-21 23:11:01 -04:00
2008-04-29 08:06:00 -07:00
2008-08-20 15:40:32 -07:00
2008-08-26 18:32:28 +00:00
2008-07-28 18:10:28 +09:00
2008-07-30 09:41:44 -07:00
2008-07-26 12:00:07 -07:00
2008-07-26 12:00:05 -07:00
2008-04-15 19:35:41 -07:00
2008-07-11 19:27:31 -04:00
2008-08-01 11:25:30 -04:00
2008-08-01 11:25:32 -04:00
2008-02-14 21:13:33 -08:00
2008-08-01 11:25:23 -04:00
2008-07-26 20:53:06 -04:00
2008-04-23 00:05:09 -04:00
2008-04-23 00:05:09 -04:00
2008-07-25 10:53:35 -07:00
2008-07-25 10:53:35 -07:00
2008-07-25 10:53:35 -07:00
2008-07-02 15:06:27 -06:00
2008-08-25 01:18:08 -04:00
2008-06-22 12:23:15 -07:00
2008-08-25 01:18:10 -04:00
2008-07-24 10:47:29 -07:00
2008-08-04 21:31:34 -07:00
2008-07-26 20:53:34 -04:00
2008-07-24 10:47:15 -07:00
2008-07-24 10:47:17 -07:00
2008-07-24 10:47:29 -07:00
2008-07-26 20:53:34 -04:00
2008-07-26 20:53:34 -04:00