Jaegeuk Kim
6f85b35203
f2fs: avoid RECLAIM_FS-ON-W: deadlock
This patch tries to avoid the following deadlock condition of which the reclaim
path can trigger f2fs_balance_fs again.
=================================
[ INFO: inconsistent lock state ]
---------------------------------
inconsistent {RECLAIM_FS-ON-W} -> {IN-RECLAIM_FS-W} usage.
kswapd0/41 [HC0[0]:SC0[0]:HE1:SE1] takes:
(&sbi->gc_mutex){+.+.?.}, at: f2fs_balance_fs+0xe6/0x100 [f2fs]
{RECLAIM_FS-ON-W} state was registered at:
[<ffffffff810aa5a9>] mark_held_locks+0xb9/0x140
[<ffffffff810aae85>] lockdep_trace_alloc+0x85/0xf0
[<ffffffff8113ab2c>] __alloc_pages_nodemask+0x7c/0x9b0
[<ffffffff81175aa8>] alloc_pages_current+0xb8/0x180
[<ffffffff811319cf>] __page_cache_alloc+0xaf/0xd0
[<ffffffff8113225c>] find_or_create_page+0x4c/0xb0
[<ffffffffa021359e>] find_data_page+0x14e/0x210 [f2fs]
[<ffffffffa021161b>] f2fs_gc+0x9eb/0xd90 [f2fs]
[<ffffffffa0218fae>] f2fs_balance_fs+0xee/0x100 [f2fs]
[<ffffffffa020848c>] f2fs_setattr+0x6c/0x200 [f2fs]
[<ffffffff811ae51b>] notify_change+0x1db/0x3a0
[<ffffffff8118fbd0>] do_truncate+0x60/0xa0
[<ffffffff8118fd95>] vfs_truncate+0x185/0x1b0
[<ffffffff8118fe1c>] do_sys_truncate+0x5c/0xa0
[<ffffffff8118ffee>] SyS_truncate+0xe/0x10
[<ffffffff816e2b42>] system_call_fastpath+0x16/0x1b
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
2013-05-28 15:03:03 +09:00
..
2013-05-07 20:16:25 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-05-07 20:16:25 -07:00
2013-05-06 13:06:59 -07:00
2013-04-30 09:36:50 -07:00
2013-03-03 19:36:31 -08:00
2013-05-18 11:35:28 -07:00
2013-04-09 14:12:56 -04:00
2013-05-07 20:16:25 -07:00
2013-05-08 17:12:47 -05:00
2013-04-09 14:12:56 -04:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-07 01:08:55 -08:00
2013-05-01 14:08:52 -07:00
2013-05-10 09:20:01 -07:00
2013-05-01 17:51:54 -07:00
2013-03-03 19:36:31 -08:00
2013-03-23 14:26:28 -07:00
2013-02-27 19:10:24 -08:00
2013-05-07 20:16:25 -07:00
2013-05-07 20:49:51 -07:00
2013-05-14 09:30:54 -07:00
2013-05-28 15:03:03 +09:00
2013-05-24 16:22:50 -07:00
2013-03-12 18:55:21 -07:00
2013-04-29 15:54:27 -07:00
2013-05-07 20:49:51 -07:00
2013-05-24 13:48:09 +01:00
2013-05-24 16:22:51 -07:00
2013-05-07 20:16:25 -07:00
2013-05-04 15:48:45 -04:00
2013-04-09 14:12:55 -04:00
2013-04-29 15:41:42 -04:00
2013-05-07 18:38:27 -07:00
2013-03-12 18:55:21 -07:00
2013-05-03 09:56:25 -07:00
2013-05-01 17:51:54 -07:00
2013-03-03 19:36:31 -08:00
2013-05-08 10:13:35 -07:00
2013-04-21 18:08:42 -04:00
2013-03-23 14:15:31 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-05-23 18:50:40 -04:00
2013-02-13 06:15:14 -08:00
2013-05-10 09:28:55 -07:00
2013-05-24 16:22:52 -07:00
2013-05-09 13:46:38 -04:00
2013-05-07 20:16:25 -07:00
2013-05-24 16:22:52 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-05-07 08:42:20 -07:00
2013-05-09 16:42:10 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-11 22:05:56 +01:00
2013-02-26 20:16:07 -08:00
2013-05-07 20:49:51 -07:00
2013-04-29 09:17:57 +10:00
2013-03-11 07:09:48 -07:00
2013-04-05 15:35:52 -07:00
2013-03-12 18:55:21 -07:00
2013-05-07 20:16:25 -07:00
2013-05-07 20:16:25 -07:00
2013-04-30 09:36:50 -07:00
2013-05-24 16:31:20 -05:00
2013-05-24 16:22:53 -07:00
2013-02-26 02:46:11 -05:00
2012-11-20 04:17:24 -08:00
2012-12-17 17:15:12 -08:00
2013-05-01 17:51:54 -07:00
2013-05-02 10:16:16 -07:00
2013-05-02 10:16:16 -07:00
2012-12-17 17:15:23 -08:00
2013-04-29 15:40:23 -04:00
2013-04-30 17:04:03 -07:00
2012-12-20 17:40:19 -08:00
2012-11-28 21:53:38 -05:00
2013-03-23 14:26:34 -07:00
2013-05-08 10:13:35 -07:00
2013-05-08 10:13:35 -07:00
2013-05-08 10:13:35 -07:00
2012-10-22 08:50:37 +03:00
2012-10-06 03:05:17 +09:00
2013-05-04 15:03:05 -04:00
2013-05-07 20:16:25 -07:00
2013-05-04 14:45:54 -04:00
2012-10-06 03:05:15 +09:00
2013-05-04 15:43:02 -04:00
2013-03-03 23:00:23 -05:00
2013-05-08 10:13:35 -07:00
2012-12-17 17:15:27 -08:00
2013-05-01 07:21:43 -07:00
2013-05-01 17:51:54 -07:00
2013-02-22 23:31:31 -05:00
2012-12-20 14:04:11 -08:00
2013-03-01 19:48:30 -05:00
2013-05-01 17:31:42 -04:00
2013-03-03 19:36:31 -08:00
2013-03-01 23:51:07 -05:00
2013-05-08 10:13:35 -07:00
2013-05-01 17:51:54 -07:00
2013-04-09 14:12:58 -04:00
2013-02-22 23:31:31 -05:00
2013-04-17 13:25:09 +01:00
2013-04-30 17:04:04 -07:00
2012-12-20 18:46:29 -05:00
2013-02-22 23:31:31 -05:00
2013-05-01 17:51:54 -07:00
2013-04-09 14:12:52 -04:00
2013-05-11 14:29:11 -07:00
2013-05-04 15:18:53 -04:00
2013-03-03 22:58:33 -05:00
2013-05-07 20:16:25 -07:00
2013-05-01 17:51:54 -07:00
2013-05-01 17:51:54 -07:00
2013-05-07 20:16:25 -07:00
2013-02-22 23:31:31 -05:00
2013-02-07 20:51:08 +01:00
2013-04-09 14:13:29 -04:00
2013-03-03 22:58:46 -05:00
2013-05-01 17:51:54 -07:00
2013-02-26 02:46:08 -05:00
2012-12-20 18:50:07 -05:00
2013-02-27 19:10:24 -08:00
2013-03-03 22:46:22 -05:00
2013-03-02 09:35:13 -05:00
2012-12-20 18:50:08 -05:00
2012-10-12 13:16:48 -07:00
2012-12-20 18:50:11 -05:00