2012-11-29 13:28:09 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-28 12:47:01 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2013-03-17 17:26:14 +09:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-08-04 23:09:40 +09:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-03-31 13:26:03 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-08-04 23:09:40 +09:00
|
|
|
|
2014-12-17 20:04:08 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-04-20 01:28:40 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2016-04-29 15:34:32 -07:00
|
|
|
|
2016-04-29 15:49:56 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-29 16:17:09 -07:00
|
|
|
|
2016-04-29 16:29:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-25 15:24:18 -07:00
|
|
|
|
2017-03-09 15:24:24 -08:00
|
|
|
|
2016-09-18 23:30:07 +08:00
|
|
|
|
2016-09-26 19:45:55 +08:00
|
|
|
|
2016-04-29 15:49:56 -07:00
|
|
|
|
2016-05-16 12:38:50 +08:00
|
|
|
|
2016-09-23 21:30:09 +08:00
|
|
|
|
|
|
|
|
|
2016-05-16 12:38:50 +08:00
|
|
|
|
2016-09-23 21:30:09 +08:00
|
|
|
|
|
|
|
|
|
2016-05-16 12:38:50 +08:00
|
|
|
|
2016-09-23 21:30:09 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-16 12:38:50 +08:00
|
|
|
|
2016-09-23 21:30:09 +08:00
|
|
|
|
2016-05-16 12:38:50 +08:00
|
|
|
|
|
|
|
|
|
2016-04-29 15:34:32 -07:00
|
|
|
|
|
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-01-23 18:33:46 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-07-03 22:05:14 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2017-03-24 20:41:45 -04:00
|
|
|
|
2013-10-07 11:36:20 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-10-07 11:36:20 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-08 15:16:22 +09:00
|
|
|
|
2017-02-15 10:34:45 +08:00
|
|
|
|
2013-11-10 23:13:17 +08:00
|
|
|
|
2014-09-24 18:16:13 +08:00
|
|
|
|
2016-05-09 19:56:34 +08:00
|
|
|
|
2014-04-02 15:34:36 +09:00
|
|
|
|
2016-05-20 22:39:20 -07:00
|
|
|
|
2014-07-23 09:57:31 -07:00
|
|
|
|
2014-10-30 22:47:03 -07:00
|
|
|
|
2015-02-05 17:55:51 +08:00
|
|
|
|
2015-06-25 17:43:04 -07:00
|
|
|
|
2015-03-24 10:20:27 +08:00
|
|
|
|
2015-12-16 13:12:16 +08:00
|
|
|
|
2016-06-03 19:29:38 -07:00
|
|
|
|
2016-12-21 17:09:19 -08:00
|
|
|
|
2016-04-29 15:34:32 -07:00
|
|
|
|
2016-05-20 21:47:24 -07:00
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
2017-07-26 00:01:41 +08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-01-23 18:33:46 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-07-03 22:05:14 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2017-03-24 20:41:45 -04:00
|
|
|
|
2013-10-07 11:36:20 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-10-07 11:36:20 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-08 15:16:22 +09:00
|
|
|
|
2017-02-15 10:34:45 +08:00
|
|
|
|
2013-11-10 23:13:17 +08:00
|
|
|
|
2014-09-24 18:16:13 +08:00
|
|
|
|
2016-05-09 19:56:34 +08:00
|
|
|
|
2014-04-02 15:34:36 +09:00
|
|
|
|
2016-05-20 22:39:20 -07:00
|
|
|
|
2014-07-23 09:57:31 -07:00
|
|
|
|
2014-10-30 22:47:03 -07:00
|
|
|
|
2015-02-05 17:55:51 +08:00
|
|
|
|
2015-06-25 17:43:04 -07:00
|
|
|
|
2015-03-24 10:20:27 +08:00
|
|
|
|
2015-12-16 13:12:16 +08:00
|
|
|
|
2016-06-03 19:29:38 -07:00
|
|
|
|
2016-12-21 17:09:19 -08:00
|
|
|
|
2016-04-29 15:34:32 -07:00
|
|
|
|
2016-05-20 21:47:24 -07:00
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
2017-07-26 00:01:41 +08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-02 20:58:29 -07:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-06-08 13:20:10 +08:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-05 11:02:54 -07:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2015-10-05 11:02:54 -07:00
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2015-10-05 11:02:54 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-23 18:33:46 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2015-06-08 13:20:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-28 17:45:02 +09:00
|
|
|
|
2015-06-08 13:20:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2016-07-03 22:05:14 +08:00
|
|
|
|
2016-10-28 17:45:03 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-03 22:05:14 +08:00
|
|
|
|
2016-10-28 17:44:59 +09:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-24 20:41:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2013-10-07 11:36:20 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-08 15:16:22 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-15 10:34:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2013-10-07 11:36:20 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-08 15:16:22 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-15 10:34:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
2013-10-07 11:36:20 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-07 11:36:20 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-11-10 23:13:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-09-24 18:16:13 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-09 19:56:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-02 15:34:36 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-20 22:39:20 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-07-23 09:57:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-10-30 22:47:03 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-02-05 17:55:51 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-06-25 17:43:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-03-24 10:20:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-16 13:12:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-03 19:29:38 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-28 17:45:04 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-13 09:47:48 -07:00
|
|
|
|
2016-06-03 19:29:38 -07:00
|
|
|
|
|
|
|
|
|
2016-06-13 09:47:48 -07:00
|
|
|
|
2016-06-03 19:29:38 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-21 17:09:19 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-29 15:34:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-23 21:30:09 +08:00
|
|
|
|
2017-01-27 09:35:37 +08:00
|
|
|
|
2016-04-29 15:34:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-20 21:47:24 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-26 00:01:41 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
2017-07-26 00:01:41 +08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-21 17:09:19 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-05 09:54:00 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-03-19 08:03:35 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-12-02 15:11:32 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2014-03-20 19:10:08 +09:00
|
|
|
|
2015-12-15 13:30:45 +08:00
|
|
|
|
2016-05-20 11:10:10 -07:00
|
|
|
|
2014-10-06 17:39:50 -07:00
|
|
|
|
|
|
|
|
|
2016-07-13 09:18:29 +08:00
|
|
|
|
|
|
|
|
|
2017-05-18 11:06:45 +08:00
|
|
|
|
2017-09-07 10:40:54 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-27 20:09:05 +09:00
|
|
|
|
|
|
|
|
|
2017-07-19 00:19:05 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 11:33:27 +09:00
|
|
|
|
|
|
|
|
|
2017-02-27 13:02:58 +00:00
|
|
|
|
2013-04-30 11:33:27 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-20 11:10:10 -07:00
|
|
|
|
2015-05-13 14:35:14 -07:00
|
|
|
|
2015-06-19 17:53:26 -07:00
|
|
|
|
|
|
|
|
|
2015-05-13 14:35:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-02-06 14:38:29 +08:00
|
|
|
|
2015-05-13 14:35:14 -07:00
|
|
|
|
2015-06-19 17:53:26 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-13 14:35:14 -07:00
|
|
|
|
2016-05-20 09:22:03 -07:00
|
|
|
|
2015-05-13 14:35:14 -07:00
|
|
|
|
|
|
|
|
|
2016-06-02 13:49:38 -07:00
|
|
|
|
2015-05-13 14:35:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-15 16:26:10 -07:00
|
|
|
|
2015-05-13 14:35:14 -07:00
|
|
|
|
2015-06-19 17:53:26 -07:00
|
|
|
|
2015-05-13 14:35:14 -07:00
|
|
|
|
2017-02-27 13:02:58 +00:00
|
|
|
|
2013-04-30 11:33:27 +09:00
|
|
|
|
2015-05-13 14:35:14 -07:00
|
|
|
|
2017-02-27 13:02:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 11:33:27 +09:00
|
|
|
|
|
|
|
|
|
2016-10-14 11:51:23 -07:00
|
|
|
|
2016-06-30 19:09:37 -07:00
|
|
|
|
|
|
|
|
|
2016-10-14 11:51:23 -07:00
|
|
|
|
2016-06-30 19:09:37 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-14 11:51:23 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-30 19:09:37 -07:00
|
|
|
|
2016-10-14 11:51:23 -07:00
|
|
|
|
|
|
|
|
|
2016-06-30 19:09:37 -07:00
|
|
|
|
2016-10-14 11:51:23 -07:00
|
|
|
|
|
|
|
|
|
2016-06-30 19:09:37 -07:00
|
|
|
|
2016-10-14 11:51:23 -07:00
|
|
|
|
2016-06-30 19:09:37 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-14 11:51:23 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-30 19:09:37 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-10 09:17:01 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-20 11:10:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-20 21:47:24 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-20 20:42:37 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-14 11:51:23 -07:00
|
|
|
|
2013-06-10 09:17:01 +09:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-28 16:12:41 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-13 12:36:58 -07:00
|
|
|
|
|
|
|
|
|
2016-05-16 11:06:50 -07:00
|
|
|
|
2016-05-16 11:42:32 -07:00
|
|
|
|
2016-05-13 12:36:58 -07:00
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-14 17:39:46 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-14 17:41:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-28 17:48:42 +08:00
|
|
|
|
2016-09-20 11:04:18 +08:00
|
|
|
|
2014-09-20 21:57:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-12-29 14:07:53 -08:00
|
|
|
|
2017-10-02 02:50:16 +08:00
|
|
|
|
2016-12-29 14:07:53 -08:00
|
|
|
|
2017-06-14 23:00:55 +08:00
|
|
|
|
2017-04-28 13:56:08 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-06-15 14:52:29 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-11 18:37:46 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-02 22:09:56 -07:00
|
|
|
|
2014-08-19 09:48:22 -07:00
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-29 08:57:59 -08:00
|
|
|
|
2017-05-10 11:28:38 -07:00
|
|
|
|
2016-01-29 08:57:59 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-14 17:39:46 +08:00
|
|
|
|
2017-07-26 11:24:13 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2016-03-02 12:04:24 -08:00
|
|
|
|
|
|
|
|
|
2015-12-15 17:17:20 +08:00
|
|
|
|
2016-05-13 12:36:58 -07:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2017-02-27 18:43:12 +08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-13 12:36:58 -07:00
|
|
|
|
2017-05-10 11:18:25 -07:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-23 17:50:30 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-04-20 01:28:40 +09:00
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-01 08:32:21 +09:00
|
|
|
|
2014-10-30 22:47:03 -07:00
|
|
|
|
|
|
|
|
|
2015-01-29 11:45:33 -08:00
|
|
|
|
|
|
|
|
|
2013-04-01 08:32:21 +09:00
|
|
|
|
2015-12-23 17:50:30 +08:00
|
|
|
|
2013-04-01 08:32:21 +09:00
|
|
|
|
|
|
|
|
|
2015-04-23 14:38:15 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-12-23 17:50:30 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2013-01-29 18:30:07 +09:00
|
|
|
|
|
|
|
|
|
2013-05-20 20:28:47 +09:00
|
|
|
|
2013-01-29 18:30:07 +09:00
|
|
|
|
|
|
|
|
|
2016-11-04 14:59:15 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-29 18:30:07 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-29 00:32:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-21 20:55:55 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-06 14:13:07 +08:00
|
|
|
|
2017-06-26 16:24:41 +08:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2017-06-21 20:55:55 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-03-03 13:58:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-29 00:32:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-05 11:02:54 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2015-10-05 11:02:54 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-24 20:41:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-08 15:16:22 +09:00
|
|
|
|
|
|
|
|
|
2017-02-15 10:34:45 +08:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-25 19:08:59 +01:00
|
|
|
|
2013-11-10 23:13:17 +08:00
|
|
|
|
|
|
|
|
|
2015-03-24 10:20:27 +08:00
|
|
|
|
|
|
|
|
|
2014-09-24 18:16:13 +08:00
|
|
|
|
|
|
|
|
|
2016-05-09 19:56:34 +08:00
|
|
|
|
|
|
|
|
|
2014-04-11 17:49:55 +08:00
|
|
|
|
2014-04-02 15:34:36 +09:00
|
|
|
|
2014-07-23 09:57:31 -07:00
|
|
|
|
|
|
|
|
|
2014-10-30 22:47:03 -07:00
|
|
|
|
|
|
|
|
|
2015-02-05 17:55:51 +08:00
|
|
|
|
|
|
|
|
|
2015-06-25 17:43:04 -07:00
|
|
|
|
|
|
|
|
|
2015-12-16 13:12:16 +08:00
|
|
|
|
|
|
|
|
|
2016-06-03 19:29:38 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-12-21 17:09:19 -08:00
|
|
|
|
|
|
|
|
|
2017-01-27 09:35:37 +08:00
|
|
|
|
|
|
|
|
|
2017-06-12 09:44:24 +08:00
|
|
|
|
|
|
|
|
|
2017-01-27 09:35:37 +08:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-26 00:01:41 +08:00
|
|
|
|
|
|
|
|
|
2017-01-27 09:35:37 +08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-07 18:11:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-08 17:39:44 +08:00
|
|
|
|
2015-05-07 18:11:37 +08:00
|
|
|
|
2016-05-09 19:56:34 +08:00
|
|
|
|
2015-06-19 17:53:26 -07:00
|
|
|
|
2017-03-24 20:41:45 -04:00
|
|
|
|
2016-05-20 21:47:24 -07:00
|
|
|
|
2016-05-20 22:39:20 -07:00
|
|
|
|
2016-10-28 17:45:00 +09:00
|
|
|
|
2016-06-13 09:47:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-07 18:11:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-26 19:45:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-07 18:11:37 +08:00
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2014-04-11 17:50:00 +08:00
|
|
|
|
|
|
|
|
|
2015-09-18 16:55:26 +08:00
|
|
|
|
2016-09-26 19:45:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-07 18:11:37 +08:00
|
|
|
|
2014-09-15 18:04:44 +08:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-11 17:50:00 +08:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2014-07-07 11:21:59 +08:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-18 16:55:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-11 17:50:00 +08:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2014-11-18 11:17:20 +08:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-11 17:50:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-24 10:29:39 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-11 17:50:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-07 16:23:32 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-27 14:21:33 +08:00
|
|
|
|
|
|
|
|
|
2014-04-27 14:21:21 +08:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2014-04-11 17:50:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-06 23:22:50 +09:00
|
|
|
|
2014-04-11 17:50:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
2016-09-26 19:45:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-30 09:45:14 -07:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-07 16:37:59 +08:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-07 16:37:59 +08:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-26 00:01:41 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-26 00:01:41 +08:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-31 15:06:24 +05:30
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-04-30 11:33:27 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2013-06-10 09:17:01 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-29 18:30:07 +09:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-06-16 09:48:48 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2015-05-15 16:26:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-07 12:42:10 -08:00
|
|
|
|
2017-01-05 13:51:18 -08:00
|
|
|
|
2015-05-15 16:26:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-07 12:42:10 -08:00
|
|
|
|
2015-05-15 16:26:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-12 13:23:41 +08:00
|
|
|
|
2014-03-12 17:08:36 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-06 15:00:58 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-31 14:35:37 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2017-07-19 00:19:06 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2017-07-19 00:19:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-02 17:03:47 +02:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
|
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-02-01 19:07:57 +08:00
|
|
|
|
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} macros were introduced *long* time
ago with promise that one day it will be possible to implement page
cache with bigger chunks than PAGE_SIZE.
This promise never materialized. And unlikely will.
We have many places where PAGE_CACHE_SIZE assumed to be equal to
PAGE_SIZE. And it's constant source of confusion on whether
PAGE_CACHE_* or PAGE_* constant should be used in a particular case,
especially on the border between fs and mm.
Global switching to PAGE_CACHE_SIZE != PAGE_SIZE would cause to much
breakage to be doable.
Let's stop pretending that pages in page cache are special. They are
not.
The changes are pretty straight-forward:
- <foo> << (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>;
- <foo> >> (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>;
- PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} -> PAGE_{SIZE,SHIFT,MASK,ALIGN};
- page_cache_get() -> get_page();
- page_cache_release() -> put_page();
This patch contains automated changes generated with coccinelle using
script below. For some reason, coccinelle doesn't patch header files.
I've called spatch for them manually.
The only adjustment after coccinelle is revert of changes to
PAGE_CAHCE_ALIGN definition: we are going to drop it later.
There are few places in the code where coccinelle didn't reach. I'll
fix them manually in a separate patch. Comments and documentation also
will be addressed with the separate patch.
virtual patch
@@
expression E;
@@
- E << (PAGE_CACHE_SHIFT - PAGE_SHIFT)
+ E
@@
expression E;
@@
- E >> (PAGE_CACHE_SHIFT - PAGE_SHIFT)
+ E
@@
@@
- PAGE_CACHE_SHIFT
+ PAGE_SHIFT
@@
@@
- PAGE_CACHE_SIZE
+ PAGE_SIZE
@@
@@
- PAGE_CACHE_MASK
+ PAGE_MASK
@@
expression E;
@@
- PAGE_CACHE_ALIGN(E)
+ PAGE_ALIGN(E)
@@
expression E;
@@
- page_cache_get(E)
+ get_page(E)
@@
expression E;
@@
- page_cache_release(E)
+ put_page(E)
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-04-01 15:29:47 +03:00
|
|
|
|
2013-02-01 19:07:57 +08:00
|
|
|
|
2013-02-01 19:07:03 +08:00
|
|
|
|
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} macros were introduced *long* time
ago with promise that one day it will be possible to implement page
cache with bigger chunks than PAGE_SIZE.
This promise never materialized. And unlikely will.
We have many places where PAGE_CACHE_SIZE assumed to be equal to
PAGE_SIZE. And it's constant source of confusion on whether
PAGE_CACHE_* or PAGE_* constant should be used in a particular case,
especially on the border between fs and mm.
Global switching to PAGE_CACHE_SIZE != PAGE_SIZE would cause to much
breakage to be doable.
Let's stop pretending that pages in page cache are special. They are
not.
The changes are pretty straight-forward:
- <foo> << (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>;
- <foo> >> (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>;
- PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} -> PAGE_{SIZE,SHIFT,MASK,ALIGN};
- page_cache_get() -> get_page();
- page_cache_release() -> put_page();
This patch contains automated changes generated with coccinelle using
script below. For some reason, coccinelle doesn't patch header files.
I've called spatch for them manually.
The only adjustment after coccinelle is revert of changes to
PAGE_CAHCE_ALIGN definition: we are going to drop it later.
There are few places in the code where coccinelle didn't reach. I'll
fix them manually in a separate patch. Comments and documentation also
will be addressed with the separate patch.
virtual patch
@@
expression E;
@@
- E << (PAGE_CACHE_SHIFT - PAGE_SHIFT)
+ E
@@
expression E;
@@
- E >> (PAGE_CACHE_SHIFT - PAGE_SHIFT)
+ E
@@
@@
- PAGE_CACHE_SHIFT
+ PAGE_SHIFT
@@
@@
- PAGE_CACHE_SIZE
+ PAGE_SIZE
@@
@@
- PAGE_CACHE_MASK
+ PAGE_MASK
@@
expression E;
@@
- PAGE_CACHE_ALIGN(E)
+ PAGE_ALIGN(E)
@@
expression E;
@@
- page_cache_get(E)
+ get_page(E)
@@
expression E;
@@
- page_cache_release(E)
+ put_page(E)
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-04-01 15:29:47 +03:00
|
|
|
|
2013-02-01 19:07:57 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2013-02-01 19:07:57 +08:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2013-02-01 19:07:57 +08:00
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-09-15 18:01:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2014-09-15 18:01:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-25 16:28:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2015-12-15 09:58:18 +08:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-02-17 11:26:32 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
f2fs: prevent checkpoint once any IO failure is detected
This patch enhances the checkpoint routine to cope with IO errors.
Basically f2fs detects IO errors from end_io_write, and the errors are able to
be occurred during one of data, node, and meta page writes.
In the previous code, when an IO error is occurred during writes, f2fs sets a
flag, CP_ERROR_FLAG, in the raw ckeckpoint buffer which will be written to disk.
Afterwards, write_checkpoint() will check the flag and remount f2fs as a
read-only (ro) mode.
However, even once f2fs is remounted as a ro mode, dirty checkpoint pages are
freely able to be written to disk by flusher or kswapd in background.
In such a case, after cold reboot, f2fs would restore the checkpoint data having
CP_ERROR_FLAG, resulting in disabling write_checkpoint and remounting f2fs as
a ro mode again.
Therefore, let's prevent any checkpoint page (meta) writes once an IO error is
occurred, and remount f2fs as a ro mode right away at that moment.
Reported-by: Oliver Winker <oliver@oli1170.net>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com>
2013-01-24 19:56:11 +09:00
|
|
|
|
|
|
|
|
|
2016-12-05 13:56:04 -08:00
|
|
|
|
2017-05-15 10:45:08 -07:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-06 15:00:58 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
f2fs: prevent checkpoint once any IO failure is detected
This patch enhances the checkpoint routine to cope with IO errors.
Basically f2fs detects IO errors from end_io_write, and the errors are able to
be occurred during one of data, node, and meta page writes.
In the previous code, when an IO error is occurred during writes, f2fs sets a
flag, CP_ERROR_FLAG, in the raw ckeckpoint buffer which will be written to disk.
Afterwards, write_checkpoint() will check the flag and remount f2fs as a
read-only (ro) mode.
However, even once f2fs is remounted as a ro mode, dirty checkpoint pages are
freely able to be written to disk by flusher or kswapd in background.
In such a case, after cold reboot, f2fs would restore the checkpoint data having
CP_ERROR_FLAG, resulting in disabling write_checkpoint and remounting f2fs as
a ro mode again.
Therefore, let's prevent any checkpoint page (meta) writes once an IO error is
occurred, and remount f2fs as a ro mode right away at that moment.
Reported-by: Oliver Winker <oliver@oli1170.net>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com>
2013-01-24 19:56:11 +09:00
|
|
|
|
2016-12-05 13:56:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-15 10:45:08 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-11 16:49:25 -07:00
|
|
|
|
f2fs: prevent checkpoint once any IO failure is detected
This patch enhances the checkpoint routine to cope with IO errors.
Basically f2fs detects IO errors from end_io_write, and the errors are able to
be occurred during one of data, node, and meta page writes.
In the previous code, when an IO error is occurred during writes, f2fs sets a
flag, CP_ERROR_FLAG, in the raw ckeckpoint buffer which will be written to disk.
Afterwards, write_checkpoint() will check the flag and remount f2fs as a
read-only (ro) mode.
However, even once f2fs is remounted as a ro mode, dirty checkpoint pages are
freely able to be written to disk by flusher or kswapd in background.
In such a case, after cold reboot, f2fs would restore the checkpoint data having
CP_ERROR_FLAG, resulting in disabling write_checkpoint and remounting f2fs as
a ro mode again.
Therefore, let's prevent any checkpoint page (meta) writes once an IO error is
occurred, and remount f2fs as a ro mode right away at that moment.
Reported-by: Oliver Winker <oliver@oli1170.net>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com>
2013-01-24 19:56:11 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-19 23:37:00 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-03-31 13:26:03 +09:00
|
|
|
|
2014-01-08 13:45:08 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2014-02-27 20:09:05 +09:00
|
|
|
|
2016-01-08 15:51:50 -08:00
|
|
|
|
2016-01-08 16:57:48 -08:00
|
|
|
|
2015-01-28 17:48:42 +08:00
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
2016-10-20 19:09:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-28 18:07:38 -07:00
|
|
|
|
|
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
|
|
|
|
|
2017-05-19 23:37:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-20 11:04:18 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2016-05-13 12:36:58 -07:00
|
|
|
|
|
|
|
|
|
2016-10-20 19:09:57 -07:00
|
|
|
|
2016-05-16 11:06:50 -07:00
|
|
|
|
2016-05-16 11:42:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-16 11:06:50 -07:00
|
|
|
|
2016-05-13 12:36:58 -07:00
|
|
|
|
|
|
|
|
|
2016-10-28 17:45:05 +09:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2016-10-28 17:45:05 +09:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2016-10-28 17:45:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2017-01-12 07:58:32 -07:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2017-01-12 07:58:32 -07:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-28 17:45:05 +09:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
2017-01-12 07:58:32 -07:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2016-10-28 17:45:05 +09:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
2016-10-28 17:45:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2016-10-28 17:45:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-14 18:47:11 +08:00
|
|
|
|
|
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-14 18:47:11 +08:00
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2013-10-14 18:47:11 +08:00
|
|
|
|
2015-12-15 17:19:26 +08:00
|
|
|
|
2013-02-01 19:07:03 +08:00
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
2015-12-15 17:19:26 +08:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
2015-05-21 14:42:53 +08:00
|
|
|
|
2013-02-01 19:07:03 +08:00
|
|
|
|
2015-12-15 17:17:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-14 18:47:11 +08:00
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-01 19:07:03 +08:00
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-15 17:19:26 +08:00
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-21 14:42:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
2015-12-15 17:17:20 +08:00
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
|
|
|
|
|
2015-05-21 14:42:53 +08:00
|
|
|
|
2016-02-17 08:59:01 +08:00
|
|
|
|
2013-02-01 19:07:03 +08:00
|
|
|
|
|
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
2015-04-20 18:49:51 -07:00
|
|
|
|
2015-12-07 10:16:58 -08:00
|
|
|
|
2015-04-20 18:49:51 -07:00
|
|
|
|
|
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-23 10:42:01 -07:00
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2016-03-23 10:42:01 -07:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
2015-12-07 10:16:58 -08:00
|
|
|
|
|
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
2015-12-07 10:16:58 -08:00
|
|
|
|
2015-06-08 13:28:03 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-12-07 10:16:58 -08:00
|
|
|
|
2015-04-20 18:49:51 -07:00
|
|
|
|
2015-12-15 17:19:26 +08:00
|
|
|
|
2016-03-20 15:33:20 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 18:49:51 -07:00
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-27 20:52:49 +09:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
2017-02-27 20:52:49 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2017-02-27 20:52:49 +09:00
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2017-02-27 20:52:49 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2017-02-27 20:52:49 +09:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2017-02-27 20:52:49 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
2017-02-27 20:52:49 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-02-27 20:52:49 +09:00
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-14 10:12:56 -08:00
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-21 14:42:53 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-05-11 17:08:14 +08:00
|
|
|
|
2015-03-16 21:08:44 +08:00
|
|
|
|
2015-01-23 17:41:39 -08:00
|
|
|
|
2015-12-15 17:19:26 +08:00
|
|
|
|
2016-01-27 09:57:30 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2014-08-08 15:37:41 -07:00
|
|
|
|
2015-05-21 14:42:53 +08:00
|
|
|
|
|
|
|
|
|
2015-12-15 17:19:26 +08:00
|
|
|
|
2015-05-21 14:42:53 +08:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
|
|
|
|
|
2016-03-02 12:04:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-12 14:41:13 +09:00
|
|
|
|
2013-12-06 15:00:58 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-03-23 17:05:27 -07:00
|
|
|
|
2015-12-15 17:19:26 +08:00
|
|
|
|
2013-10-14 18:47:11 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-07 14:16:53 +08:00
|
|
|
|
2016-06-13 09:47:48 -07:00
|
|
|
|
|
|
|
|
|
2017-07-31 20:19:09 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-28 17:45:01 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-12 09:44:27 +08:00
|
|
|
|
2016-10-28 17:45:01 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-07 18:11:37 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-01-23 17:41:39 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-01-23 17:41:39 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-12-31 14:35:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-26 00:01:41 +08:00
|
|
|
|
2017-07-09 00:13:07 +08:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-05-15 16:26:10 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-10 15:06:33 +02:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2015-12-15 17:19:26 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2014-07-03 18:58:39 +08:00
|
|
|
|
2017-03-13 20:22:18 +08:00
|
|
|
|
2015-08-11 12:45:39 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-11-18 17:16:17 +09:00
|
|
|
|
2017-08-02 23:21:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-11 13:54:01 +09:00
|
|
|
|
2017-05-10 11:18:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-11 09:21:11 +02:00
|
|
|
|
|
|
|
|
|
2017-05-10 11:18:25 -07:00
|
|
|
|
2017-06-11 09:21:11 +02:00
|
|
|
|
2017-05-10 11:18:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-19 23:37:01 +08:00
|
|
|
|
|
|
|
|
|
2017-05-10 11:18:25 -07:00
|
|
|
|
2013-12-11 13:54:01 +09:00
|
|
|
|
2013-11-18 17:16:17 +09:00
|
|
|
|
2016-08-04 11:38:25 -07:00
|
|
|
|
2013-11-07 12:48:25 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2016-05-13 12:36:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-14 10:12:56 -08:00
|
|
|
|
|
|
|
|
|
2017-02-27 18:43:13 +08:00
|
|
|
|
2017-06-12 09:44:27 +08:00
|
|
|
|
|
|
|
|
|
2016-12-14 10:12:56 -08:00
|
|
|
|
2017-06-12 09:44:27 +08:00
|
|
|
|
2016-12-14 10:12:56 -08:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-12-14 10:12:56 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2016-05-16 11:42:32 -07:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-26 16:24:41 +08:00
|
|
|
|
2016-05-16 11:06:50 -07:00
|
|
|
|
2015-12-16 13:09:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
f2fs: enable rb-tree extent cache
This patch enables rb-tree based extent cache in f2fs.
When we mount with "-o extent_cache", f2fs will try to add recently accessed
page-block mappings into rb-tree based extent cache as much as possible, instead
of original one extent info cache.
By this way, f2fs can support more effective cache between dnode page cache and
disk. It will supply high hit ratio in the cache with fewer memory when dnode
page cache are reclaimed in environment of low memory.
Storage: Sandisk sd card 64g
1.append write file (offset: 0, size: 128M);
2.override write file (offset: 2M, size: 1M);
3.override write file (offset: 4M, size: 1M);
...
4.override write file (offset: 48M, size: 1M);
...
5.override write file (offset: 112M, size: 1M);
6.sync
7.echo 3 > /proc/sys/vm/drop_caches
8.read file (size:128M, unit: 4k, count: 32768)
(time dd if=/mnt/f2fs/128m bs=4k count=32768)
Extent Hit Ratio:
before patched
Hit Ratio 121 / 1071 1071 / 1071
Performance:
before patched
real 0m37.051s 0m35.556s
user 0m0.040s 0m0.026s
sys 0m2.990s 0m2.251s
Memory Cost:
before patched
Tree Count: 0 1 (size: 24 bytes)
Node Count: 0 45 (size: 1440 bytes)
v3:
o retest and given more details of test result.
Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-02-05 17:57:31 +08:00
|
|
|
|
|
|
|
|
|
2014-07-25 15:47:17 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-01-27 09:57:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-29 18:00:15 +08:00
|
|
|
|
2016-01-27 09:57:30 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
|
|
|
|
|
2017-03-07 13:41:22 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-12-30 14:52:05 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-11-28 15:43:43 +08:00
|
|
|
|
2014-07-25 12:55:09 +08:00
|
|
|
|
2013-11-28 15:43:43 +08:00
|
|
|
|
2014-07-25 12:55:09 +08:00
|
|
|
|
2013-11-28 15:43:43 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-26 11:24:13 -07:00
|
|
|
|
2013-08-04 23:09:40 +09:00
|
|
|
|
2017-06-14 17:39:46 +08:00
|
|
|
|
2013-08-04 23:09:40 +09:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-19 18:23:32 +09:00
|
|
|
|
|
|
|
|
|
2015-01-23 19:16:59 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-20 11:04:18 +08:00
|
|
|
|
2015-01-23 19:16:59 -08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2015-01-23 19:16:59 -08:00
|
|
|
|
2015-03-16 21:08:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-19 17:55:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-23 16:12:58 -07:00
|
|
|
|
|
|
|
|
|
2015-03-16 21:08:44 +08:00
|
|
|
|
2014-02-19 18:23:32 +09:00
|
|
|
|
2016-05-11 17:08:14 +08:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2014-08-08 15:37:41 -07:00
|
|
|
|
2016-03-23 16:12:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-14 17:39:46 +08:00
|
|
|
|
2016-03-23 16:12:58 -07:00
|
|
|
|
2014-02-19 18:23:32 +09:00
|
|
|
|
2016-09-19 17:55:10 -07:00
|
|
|
|
2015-08-11 12:45:39 -07:00
|
|
|
|
|
|
|
|
|
2014-02-19 18:23:32 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-11-18 11:16:01 +08:00
|
|
|
|
2014-02-19 18:23:32 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2014-02-19 18:23:32 +09:00
|
|
|
|
2015-01-23 17:41:39 -08:00
|
|
|
|
2015-05-21 14:42:53 +08:00
|
|
|
|
|
|
|
|
|
2016-03-23 10:42:01 -07:00
|
|
|
|
2016-02-22 18:33:20 +08:00
|
|
|
|
|
|
|
|
|
2016-05-11 17:08:14 +08:00
|
|
|
|
2016-02-22 18:33:20 +08:00
|
|
|
|
2015-05-21 14:42:53 +08:00
|
|
|
|
|
|
|
|
|
2017-02-09 13:25:35 -08:00
|
|
|
|
|
|
|
|
|
2016-01-08 15:51:50 -08:00
|
|
|
|
2016-01-08 16:57:48 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2014-02-19 18:23:32 +09:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
2016-05-20 11:10:10 -07:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-26 11:24:13 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-23 11:29:00 -07:00
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
2016-09-21 11:39:42 -07:00
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
2017-03-07 13:41:22 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-06 19:02:05 -07:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-14 10:12:56 -08:00
|
|
|
|
|
|
|
|
|
2015-01-23 17:41:39 -08:00
|
|
|
|
2017-05-10 11:18:25 -07:00
|
|
|
|
|
|
|
|
|
2016-05-13 12:36:58 -07:00
|
|
|
|
2017-08-08 10:54:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-23 17:41:39 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2015-12-15 17:17:20 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-03-02 12:04:24 -08:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2014-08-08 15:37:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-13 21:48:06 +09:00
|
|
|
|
2014-08-08 15:37:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-14 16:34:24 -08:00
|
|
|
|
|
|
|
|
|
2017-06-29 23:17:45 +08:00
|
|
|
|
2015-01-28 17:48:42 +08:00
|
|
|
|
2017-06-29 23:17:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-14 16:34:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-14 16:34:24 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2013-03-02 19:39:14 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-01-17 00:08:30 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-01-14 15:18:21 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-06 15:00:58 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-07 14:07:36 -08:00
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-20 16:49:51 +08:00
|
|
|
|
2013-11-15 13:55:58 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-08-20 16:49:51 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2014-12-29 15:56:18 +08:00
|
|
|
|
f2fs: enable rb-tree extent cache
This patch enables rb-tree based extent cache in f2fs.
When we mount with "-o extent_cache", f2fs will try to add recently accessed
page-block mappings into rb-tree based extent cache as much as possible, instead
of original one extent info cache.
By this way, f2fs can support more effective cache between dnode page cache and
disk. It will supply high hit ratio in the cache with fewer memory when dnode
page cache are reclaimed in environment of low memory.
Storage: Sandisk sd card 64g
1.append write file (offset: 0, size: 128M);
2.override write file (offset: 2M, size: 1M);
3.override write file (offset: 4M, size: 1M);
...
4.override write file (offset: 48M, size: 1M);
...
5.override write file (offset: 112M, size: 1M);
6.sync
7.echo 3 > /proc/sys/vm/drop_caches
8.read file (size:128M, unit: 4k, count: 32768)
(time dd if=/mnt/f2fs/128m bs=4k count=32768)
Extent Hit Ratio:
before patched
Hit Ratio 121 / 1071 1071 / 1071
Performance:
before patched
real 0m37.051s 0m35.556s
user 0m0.040s 0m0.026s
sys 0m2.990s 0m2.251s
Memory Cost:
before patched
Tree Count: 0 1 (size: 24 bytes)
Node Count: 0 45 (size: 1440 bytes)
v3:
o retest and given more details of test result.
Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-02-05 17:57:31 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-26 11:24:13 -07:00
|
|
|
|
2017-06-14 17:39:46 +08:00
|
|
|
|
f2fs: enable rb-tree extent cache
This patch enables rb-tree based extent cache in f2fs.
When we mount with "-o extent_cache", f2fs will try to add recently accessed
page-block mappings into rb-tree based extent cache as much as possible, instead
of original one extent info cache.
By this way, f2fs can support more effective cache between dnode page cache and
disk. It will supply high hit ratio in the cache with fewer memory when dnode
page cache are reclaimed in environment of low memory.
Storage: Sandisk sd card 64g
1.append write file (offset: 0, size: 128M);
2.override write file (offset: 2M, size: 1M);
3.override write file (offset: 4M, size: 1M);
...
4.override write file (offset: 48M, size: 1M);
...
5.override write file (offset: 112M, size: 1M);
6.sync
7.echo 3 > /proc/sys/vm/drop_caches
8.read file (size:128M, unit: 4k, count: 32768)
(time dd if=/mnt/f2fs/128m bs=4k count=32768)
Extent Hit Ratio:
before patched
Hit Ratio 121 / 1071 1071 / 1071
Performance:
before patched
real 0m37.051s 0m35.556s
user 0m0.040s 0m0.026s
sys 0m2.990s 0m2.251s
Memory Cost:
before patched
Tree Count: 0 1 (size: 24 bytes)
Node Count: 0 45 (size: 1440 bytes)
v3:
o retest and given more details of test result.
Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-02-05 17:57:31 +08:00
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
2015-05-15 15:37:24 -07:00
|
|
|
|
2017-06-14 17:39:46 +08:00
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-29 09:13:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-20 16:49:51 +08:00
|
|
|
|
|
|
|
|
|
2015-10-29 09:13:04 +08:00
|
|
|
|
|
|
|
|
|
2015-06-19 12:01:21 -07:00
|
|
|
|
|
|
|
|
|
2017-06-14 17:39:46 +08:00
|
|
|
|
2017-07-26 11:24:13 -07:00
|
|
|
|
f2fs: enable rb-tree extent cache
This patch enables rb-tree based extent cache in f2fs.
When we mount with "-o extent_cache", f2fs will try to add recently accessed
page-block mappings into rb-tree based extent cache as much as possible, instead
of original one extent info cache.
By this way, f2fs can support more effective cache between dnode page cache and
disk. It will supply high hit ratio in the cache with fewer memory when dnode
page cache are reclaimed in environment of low memory.
Storage: Sandisk sd card 64g
1.append write file (offset: 0, size: 128M);
2.override write file (offset: 2M, size: 1M);
3.override write file (offset: 4M, size: 1M);
...
4.override write file (offset: 48M, size: 1M);
...
5.override write file (offset: 112M, size: 1M);
6.sync
7.echo 3 > /proc/sys/vm/drop_caches
8.read file (size:128M, unit: 4k, count: 32768)
(time dd if=/mnt/f2fs/128m bs=4k count=32768)
Extent Hit Ratio:
before patched
Hit Ratio 121 / 1071 1071 / 1071
Performance:
before patched
real 0m37.051s 0m35.556s
user 0m0.040s 0m0.026s
sys 0m2.990s 0m2.251s
Memory Cost:
before patched
Tree Count: 0 1 (size: 24 bytes)
Node Count: 0 45 (size: 1440 bytes)
v3:
o retest and given more details of test result.
Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-02-05 17:57:31 +08:00
|
|
|
|
|
|
|
|
|
2013-08-20 16:49:51 +08:00
|
|
|
|
|
|
|
|
|
2013-11-15 13:55:58 +09:00
|
|
|
|
|
|
|
|
|
2013-08-20 16:49:51 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-15 19:58:47 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2016-05-18 08:02:25 +08:00
|
|
|
|
2017-07-26 11:24:13 -07:00
|
|
|
|
2015-03-06 15:00:54 +08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
2013-12-11 14:32:13 +09:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
2015-01-07 14:09:48 -08:00
|
|
|
|
2012-11-02 17:07:47 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-04 14:59:15 -07:00
|
|
|
|