Ryusuke Konishi
c1ea985c71
nilfs2: fix lock order reversal in chcp operation
Will fix the following lock order reversal lockdep detected:
=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.32-rc6 #7
-------------------------------------------------------
chcp/30157 is trying to acquire lock:
(&nilfs->ns_mount_mutex){+.+.+.}, at: [<fed7cfcc>] nilfs_cpfile_change_cpmode+0x46/0x752 [nilfs2]
but task is already holding lock:
(&nilfs->ns_segctor_sem){++++.+}, at: [<fed7ca32>] nilfs_transaction_begin+0xba/0x110 [nilfs2]
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #2 (&nilfs->ns_segctor_sem){++++.+}:
[<c105799c>] __lock_acquire+0x109c/0x139d
[<c1057d26>] lock_acquire+0x89/0xa0
[<c14151e2>] down_read+0x31/0x45
[<fed6d77b>] nilfs_attach_checkpoint+0x8f/0x16b [nilfs2]
[<fed6e393>] nilfs_get_sb+0x3e7/0x653 [nilfs2]
[<c10c0ccb>] vfs_kern_mount+0x8b/0x124
[<c10c0db2>] do_kern_mount+0x37/0xc3
[<c10d7517>] do_mount+0x64d/0x69d
[<c10d75cd>] sys_mount+0x66/0x95
[<c1002a14>] sysenter_do_call+0x12/0x32
-> #1 (&type->s_umount_key#31/1){+.+.+.}:
[<c105799c>] __lock_acquire+0x109c/0x139d
[<c1057d26>] lock_acquire+0x89/0xa0
[<c104c0f3>] down_write_nested+0x34/0x52
[<c10c08fe>] sget+0x22e/0x389
[<fed6e133>] nilfs_get_sb+0x187/0x653 [nilfs2]
[<c10c0ccb>] vfs_kern_mount+0x8b/0x124
[<c10c0db2>] do_kern_mount+0x37/0xc3
[<c10d7517>] do_mount+0x64d/0x69d
[<c10d75cd>] sys_mount+0x66/0x95
[<c1002a14>] sysenter_do_call+0x12/0x32
-> #0 (&nilfs->ns_mount_mutex){+.+.+.}:
[<c1057727>] __lock_acquire+0xe27/0x139d
[<c1057d26>] lock_acquire+0x89/0xa0
[<c1414d63>] mutex_lock_nested+0x41/0x23e
[<fed7cfcc>] nilfs_cpfile_change_cpmode+0x46/0x752 [nilfs2]
[<fed801b2>] nilfs_ioctl+0x11a/0x7da [nilfs2]
[<c10cca12>] vfs_ioctl+0x27/0x6e
[<c10ccf93>] do_vfs_ioctl+0x491/0x4db
[<c10cd022>] sys_ioctl+0x45/0x5f
[<c1002a14>] sysenter_do_call+0x12/0x32
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
2009-11-13 10:33:24 +09:00
..
2009-11-02 08:43:45 -06:00
2009-09-24 07:21:05 -07:00
2009-06-11 21:36:14 -04:00
2009-10-01 16:11:16 -07:00
2009-09-21 15:14:58 +02:00
2009-08-31 17:44:05 -10:00
2009-09-24 07:47:42 -04:00
2009-07-12 12:22:34 -07:00
2009-11-11 13:38:59 -08:00
2009-06-11 21:36:06 -04:00
2009-11-06 22:06:14 +00:00
2009-10-04 15:05:10 -07:00
2009-09-11 09:20:26 +02:00
2009-04-02 19:05:08 -07:00
2009-06-15 21:30:28 -07:00
2009-09-23 07:39:28 -07:00
2009-09-30 12:19:44 -05:00
2009-10-08 11:31:38 -05:00
2009-06-17 00:36:36 -04:00
2009-09-24 07:47:38 -04:00
2009-09-24 07:53:22 -07:00
2009-11-11 15:22:49 +01:00
2009-11-08 15:45:44 -05:00
2009-09-30 09:31:14 -07:00
2009-07-12 12:22:34 -07:00
2009-05-27 10:20:13 -07:00
2009-11-04 10:24:52 +01:00
2009-09-27 11:39:25 -07:00
2009-10-29 07:39:29 -07:00
2009-10-29 07:39:27 -07:00
2009-06-30 18:56:03 -07:00
2009-07-12 12:22:34 -07:00
2009-04-02 19:04:53 -07:00
2009-09-24 08:32:11 -07:00
2009-09-24 07:47:42 -04:00
2009-11-12 10:24:12 +01:00
2009-11-11 15:24:14 +01:00
2009-09-23 10:07:49 -07:00
2009-09-24 07:47:42 -04:00
2009-09-23 18:13:10 -07:00
2009-09-23 07:39:57 -07:00
2009-09-27 11:39:25 -07:00
2009-10-26 08:09:46 -04:00
2009-10-01 16:11:11 -07:00
2009-11-13 10:33:24 +09:00
2009-09-30 09:31:14 -07:00
2009-10-20 18:02:33 -04:00
2009-09-24 08:32:11 -07:00
2009-10-01 16:11:11 -07:00
2009-10-01 16:11:11 -07:00
2009-10-06 20:16:55 +02:00
2009-11-12 07:25:57 -08:00
2009-09-23 07:39:30 -07:00
2009-09-22 07:17:24 -07:00
2009-09-24 08:41:47 -04:00
2009-09-22 07:17:24 -07:00
2009-10-11 11:33:56 -07:00
2009-09-24 07:47:42 -04:00
2009-09-22 07:17:24 -07:00
2009-11-05 08:19:18 +11:00
2009-06-17 00:36:37 -04:00
2009-09-27 11:39:25 -07:00
2009-09-14 19:13:01 +02:00
2009-06-18 13:03:46 -07:00
2009-10-31 12:12:49 -07:00
2009-09-23 07:39:29 -07:00
2009-10-04 15:05:10 -07:00
2009-09-24 08:41:47 -04:00
2009-09-24 07:21:02 -07:00
2009-09-24 07:21:01 -07:00
2009-09-24 07:21:03 -07:00
2009-03-31 23:00:28 -04:00
2009-07-01 10:56:25 +02:00
2009-11-02 11:41:13 +01:00
2009-10-26 15:27:11 +01:00
2009-09-25 09:27:30 -07:00
2009-09-24 07:21:03 -07:00
2009-11-12 07:25:57 -08:00
2009-11-04 13:25:03 +01:00
2009-07-18 15:51:44 +02:00
2009-05-22 23:22:54 +02:00
2009-09-24 07:21:04 -07:00
2009-09-23 07:39:29 -07:00
2009-06-18 13:03:41 -07:00
2009-11-12 07:25:58 -08:00
2009-09-24 07:21:01 -07:00
2009-09-24 07:21:04 -07:00
2009-10-11 11:20:58 -07:00
2009-04-20 23:02:52 -04:00
2009-03-31 23:00:27 -04:00
2009-09-26 00:10:40 +02:00
2009-03-31 23:00:26 -04:00
2009-09-24 07:47:27 -04:00
2009-09-24 08:40:15 -04:00
2009-11-12 07:26:01 -08:00
2009-10-30 15:03:54 +11:00
2009-09-24 07:47:30 -04:00
2009-09-22 07:17:25 -07:00
2009-04-07 08:31:16 -07:00
2009-05-13 15:13:42 -04:00
2009-09-11 08:55:49 -07:00
2009-09-24 08:40:15 -04:00
2009-09-23 09:21:05 -07:00
2009-10-22 08:11:44 +09:00
2009-09-24 07:47:34 -04:00
2009-10-04 15:05:10 -07:00
2009-09-24 07:47:35 -04:00
2009-09-14 17:55:15 -07:00
2009-04-20 23:02:52 -04:00
2009-09-24 07:47:41 -04:00
2009-09-23 07:39:29 -07:00
2009-02-18 15:37:53 -08:00
2009-09-10 10:11:22 +10:00