2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2008-10-09 19:38:40 +02:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
2017-02-02 19:15:33 +01:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2008-10-17 14:55:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2009-08-18 11:29:12 +08:00
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2009-08-18 11:22:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-21 17:11:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2008-08-21 17:11:10 -07:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-21 17:11:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-21 17:11:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
2008-08-21 17:11:10 -07:00
|
|
|
|
2009-02-13 03:18:34 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:50:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-21 17:11:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
2008-08-21 17:11:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
2008-08-21 17:11:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2009-08-18 11:22:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2009-02-13 03:18:34 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:50:12 -08:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2018-01-31 16:15:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-14 15:17:21 -08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:18:34 -08:00
|
|
|
|
2009-02-13 02:50:12 -08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:57:27 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:57:27 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 16:57:27 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2009-02-13 03:18:34 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:50:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
|
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
|
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-11-13 14:49:12 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2008-11-13 14:49:12 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-11-13 14:49:12 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
|
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
|
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
|
|
|
|
|
2016-01-14 15:17:21 -08:00
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
|
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 17:31:10 -07:00
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 17:31:10 -07:00
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 17:31:10 -07:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:57:27 -07:00
|
|
|
|
2008-08-18 17:38:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:57:27 -07:00
|
|
|
|
2008-08-18 17:38:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-18 17:38:49 +08:00
|
|
|
|
|
|
|
|
|
2008-08-20 16:57:27 -07:00
|
|
|
|
2008-08-18 17:38:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-14 15:17:21 -08:00
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
2008-08-20 17:31:10 -07:00
|
|
|
|
2008-08-18 17:38:49 +08:00
|
|
|
|
|
|
|
|
|
2008-11-12 16:27:44 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-11-12 16:27:44 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-11-12 16:27:44 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-14 15:17:21 -08:00
|
|
|
|
2008-11-12 16:27:44 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-14 15:17:21 -08:00
|
|
|
|
2009-08-18 11:22:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2016-01-14 15:17:21 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 17:44:24 -07:00
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-08-20 16:57:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:06 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 17:19:50 -07:00
|
|
|
|
2008-08-20 17:31:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2008-08-20 17:44:24 -07:00
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-08-20 17:44:24 -07:00
|
|
|
|
|
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2008-08-20 17:44:24 -07:00
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-08-20 17:44:24 -07:00
|
|
|
|
|
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-12-09 14:24:33 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-08-22 12:46:09 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2008-11-12 16:27:44 -08:00
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-11-12 16:27:44 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2008-11-12 16:27:44 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 03:18:34 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:50:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2007-06-22 15:52:36 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
|
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:34 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:34 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:34 +08:00
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:34 +08:00
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 16:41:25 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 16:41:25 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:18 +08:00
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-13 03:07:09 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:07:09 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 14:55:01 -07:00
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2008-11-13 14:49:19 -08:00
|
|
|
|
2008-10-17 14:55:01 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 14:55:01 -07:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-10-17 14:55:01 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
2015-09-04 15:44:17 -07:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:17 -07:00
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:17 -07:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:17 -07:00
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
2018-08-17 15:44:27 -07:00
|
|
|
|
2015-09-04 15:44:17 -07:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:17 -07:00
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
2009-02-12 17:49:26 -08:00
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:49:26 -08:00
|
|
|
|
2008-11-13 14:49:19 -08:00
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:19 -08:00
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-09-06 16:19:11 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2009-02-12 17:49:26 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:49:19 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-26 10:09:15 +08:00
|
|
|
|
2009-02-12 18:49:19 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-06 13:59:06 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2010-03-26 10:09:15 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-11-12 15:06:54 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:49:19 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2009-02-12 18:49:19 -08:00
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-25 14:11:06 +08:00
|
|
|
|
|
|
|
|
|
2010-03-26 10:09:15 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2011-03-07 16:43:21 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-04-26 14:34:57 +08:00
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-04-13 12:22:00 -04:00
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:06 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
ocfs2: Adjust rightmost path in ocfs2_add_branch.
In ocfs2_add_branch, we use the rightmost rec of the leaf extent block
to generate the e_cpos for the newly added branch. In the most case, it
is OK but if the parent extent block's rightmost rec covers more clusters
than the leaf does, it will cause kernel panic if we insert some clusters
in it. The message is something like:
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: bug expression:
le16_to_cpu(el->l_next_free_rec) >= le16_to_cpu(el->l_count)
(7445,1):ocfs2_insert_at_leaf:3775 ERROR: inode 66053, depth 0, count 28,
next free 28, rec.cpos 270, rec.clusters 1, insert.cpos 275, insert.clusters 1
[<fa7ad565>] ? ocfs2_do_insert_extent+0xb58/0xda0 [ocfs2]
[<fa7b08f2>] ? ocfs2_insert_extent+0x5bd/0x6ba [ocfs2]
[<fa7b1b8b>] ? ocfs2_add_clusters_in_btree+0x37f/0x564 [ocfs2]
...
The panic can be easily reproduced by the following small test case
(with bs=512, cs=4K, and I remove all the error handling so that it looks
clear enough for reading).
int main(int argc, char **argv)
{
int fd, i;
char buf[5] = "test";
fd = open(argv[1], O_RDWR|O_CREAT);
for (i = 0; i < 30; i++) {
lseek(fd, 40960 * i, SEEK_SET);
write(fd, buf, 5);
}
ftruncate(fd, 1146880);
lseek(fd, 1126400, SEEK_SET);
write(fd, buf, 5);
close(fd);
return 0;
}
The reason of the panic is that:
the 30 writes and the ftruncate makes the file's extent list looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 280 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
Now another write at 1126400(275 cluster) whiich will write at the gap
between 271 and 280 will trigger ocfs2_add_branch, but the result after
the function looks like:
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 280 86183
1 271 0 143592
So the extent record is intersected and make the following operation bug out.
This patch just try to remove the gap before we add the new branch, so that
the root(branch) rightmost rec will cover the same right position. So in the
above case, before adding branch the tree will be changed to
Tree Depth: 1 Count: 19 Next Free Rec: 1
## Offset Clusters Block#
0 0 271 86183
SubAlloc Bit: 7 SubAlloc Slot: 0
Blknum: 86183 Next Leaf: 0
CRC32: 00000000 ECC: 0000
Tree Depth: 0 Count: 28 Next Free Rec: 28
## Offset Clusters Block# Flags
0 0 1 143368 0x0
1 10 1 143376 0x0
...
26 260 1 143576 0x0
27 270 1 143584 0x0
And after branch add, the tree looks like
Tree Depth: 1 Count: 19 Next Free Rec: 2
## Offset Clusters Block#
0 0 271 86183
1 271 0 143592
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2009-06-12 14:18:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:06 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-17 15:44:24 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-17 15:44:24 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2009-02-12 17:49:26 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
|
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:06 -08:00
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
2018-08-17 15:44:27 -07:00
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-04 15:21:05 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-11-30 14:32:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:34 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-07-23 08:12:58 +08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-09-06 16:19:11 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-12 19:02:36 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-09-06 16:19:11 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-12 19:02:36 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:44 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2010-04-26 14:34:57 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2010-04-26 14:34:57 +08:00
|
|
|
|
2009-08-18 11:44:07 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2010-04-26 14:34:57 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tree-wide: fix assorted typos all over the place
That is "success", "unknown", "through", "performance", "[re|un]mapping"
, "access", "default", "reasonable", "[con]currently", "temperature"
, "channel", "[un]used", "application", "example","hierarchy", "therefore"
, "[over|under]flow", "contiguous", "threshold", "enough" and others.
Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2009-11-14 13:09:05 -02:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:42:08 -08:00
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:10:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:43:57 -08:00
|
|
|
|
|
|
|
|
|
2017-09-06 16:19:11 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-07-21 15:42:05 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-12 19:43:57 -08:00
|
|
|
|
2009-07-21 15:42:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-07-21 15:42:05 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2009-02-12 18:57:52 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:57:52 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:57:52 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:57:52 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2009-02-12 18:57:52 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:57:52 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:45:28 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:45:28 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:45:28 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:45:28 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:45:28 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:45:28 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-02-12 18:57:52 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2017-09-06 16:19:11 -07:00
|
|
|
|
2009-07-21 15:42:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:02:36 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-11-30 14:32:19 +08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:47:43 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-02-12 19:47:43 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:47:43 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2015-06-24 16:55:09 -07:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:47:43 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-25 14:21:41 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-12-03 16:43:01 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:47:43 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-12-03 16:43:01 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:45:28 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-12 19:45:28 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:47:43 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:49:26 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-12 18:57:52 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2017-09-06 16:19:11 -07:00
|
|
|
|
2009-07-21 15:42:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-02-12 18:57:52 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-17 15:44:24 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:47:43 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:47:43 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-12 19:47:43 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2008-05-21 06:32:11 +01:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:53 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-05-21 06:32:11 +01:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2009-02-12 19:02:36 -08:00
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:42 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:51 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2009-01-05 14:45:24 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-25 14:21:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:02:36 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2015-04-14 15:42:42 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:19:11 -08:00
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:19:11 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-08-28 17:25:35 -07:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-08-28 17:25:35 -07:00
|
|
|
|
2016-03-25 14:21:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-08-28 17:25:35 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2007-08-28 17:25:35 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-08-28 17:25:35 -07:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-25 14:21:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-25 14:21:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:16:08 -08:00
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-25 14:21:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:54:36 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:54:36 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:54:36 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:54:36 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:54:36 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:14:55 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:56:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-01-07 18:09:08 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:56:23 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:57:58 -08:00
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-04-26 14:34:57 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-12-03 16:43:01 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2007-12-03 16:43:01 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-02-03 17:33:42 +02:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:56:23 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-12-03 16:43:01 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:54:36 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-12 19:02:36 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:57:58 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:54:36 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:42:08 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-12-03 16:43:01 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-12-03 16:43:01 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:57:58 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-06-24 16:55:07 -07:00
|
|
|
|
2009-02-13 03:09:54 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2015-06-24 16:55:07 -07:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2015-06-24 16:55:07 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:09:54 -08:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:09:54 -08:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2015-06-24 16:55:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2015-06-24 16:55:07 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
2009-02-13 03:09:54 -08:00
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-17 15:44:24 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:18 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:09:54 -08:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2015-06-24 16:55:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2015-06-24 16:55:07 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
2009-02-13 03:09:54 -08:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-17 15:44:24 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2008-01-30 14:21:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:18 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
2015-04-14 15:42:42 -07:00
|
|
|
|
2015-04-14 15:42:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-06-24 16:55:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 03:12:33 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 03:12:33 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-08-18 11:22:18 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:52 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-30 22:57:33 -03:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:14:38 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2007-08-28 17:22:33 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:49:26 -08:00
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2011-03-07 16:43:21 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-08-28 17:22:33 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:12:33 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:12:33 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:25:06 -07:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-13 03:24:43 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-13 03:24:43 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-13 03:24:43 -08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
2007-08-28 17:22:33 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-03-09 16:43:28 -08:00
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2008-08-20 18:32:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-13 03:14:38 -08:00
|
|
|
|
2007-08-28 17:22:33 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-08-28 17:22:33 -07:00
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2007-05-29 14:28:51 -07:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2009-02-13 02:57:58 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 03:18:34 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2008-08-18 17:38:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:34:15 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:34:15 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-09-06 16:19:11 -07:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-06 13:59:06 +08:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:24:43 -08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2008-08-18 17:38:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:43:22 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2009-02-13 03:43:22 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:43:22 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:57:58 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-06 16:03:54 -07:00
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-06 16:03:54 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-17 19:46:04 -08:00
|
|
|
|
|
|
|
|
|
2009-01-09 07:32:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-17 19:46:04 -08:00
|
|
|
|
2009-01-09 07:32:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-12-03 16:43:01 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-06-24 16:55:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:45:49 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:49:26 -08:00
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2011-03-07 16:43:21 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:14:55 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-17 19:46:04 -08:00
|
|
|
|
2009-01-09 07:32:48 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 03:43:22 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:19:11 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2009-02-13 02:19:11 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:28:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-06 16:03:54 -07:00
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-09 14:13:09 -08:00
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-09 14:13:09 -08:00
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2009-08-18 11:22:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-04-26 14:34:57 +08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:49:26 -08:00
|
|
|
|
2008-11-13 14:49:16 -08:00
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-04-26 14:34:57 +08:00
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:57:58 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:42:30 -08:00
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:42:30 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-19 17:09:47 -07:00
|
|
|
|
2009-02-13 02:42:30 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-25 14:21:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:42:30 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:42:30 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:24:10 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:42:30 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:20:13 -08:00
|
|
|
|
2009-02-12 19:02:36 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:09:31 -08:00
|
|
|
|
2018-08-17 15:44:27 -07:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
2007-07-03 13:34:11 -07:00
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:38:44 +08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
2009-02-13 02:50:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
2008-10-17 22:32:01 -07:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-06 16:03:54 -07:00
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
2009-02-13 02:42:30 -08:00
|
|
|
|
|
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-06 16:03:54 -07:00
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:42:30 -08:00
|
|
|
|
|
|
|
|
|
2018-08-17 15:44:27 -07:00
|
|
|
|
2007-07-03 13:27:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-09-06 16:19:11 -07:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
2014-12-18 16:17:32 -08:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-09 14:13:09 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
2014-12-18 16:17:32 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-07-03 15:00:52 -07:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
2013-07-03 15:00:52 -07:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 17:32:34 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
2011-10-12 15:22:15 +08:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
2010-03-03 09:05:00 -05:00
|
|
|
|
2009-01-29 15:06:21 -08:00
|
|
|
|
|
|
|
|
|
2009-02-13 03:41:26 -08:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 19:32:43 -08:00
|
|
|
|
2014-04-03 14:47:08 -07:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2013-07-03 15:00:52 -07:00
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-12 15:16:38 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-03 13:34:11 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-03 13:34:11 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-03-03 10:24:33 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 16:41:25 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2010-11-04 15:14:11 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-19 14:44:21 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-19 14:44:21 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2009-02-12 16:41:25 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-19 14:13:52 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-25 14:21:44 -07:00
|
|
|
|
2016-09-19 14:44:21 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-04 15:14:11 +08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-01-09 15:59:24 -08:00
|
|
|
|
2007-07-03 13:34:11 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2006-10-05 15:58:48 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-05 15:58:48 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2006-10-05 15:58:48 -07:00
|
|
|
|
2007-10-18 15:30:42 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2006-10-05 15:58:48 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2016-09-19 14:44:21 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2006-10-05 15:58:48 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2006-10-05 15:58:48 -07:00
|
|
|
|
2007-10-18 15:30:42 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2006-10-05 15:58:48 -07:00
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2006-10-05 15:58:48 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2006-10-05 15:58:48 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-11-22 14:57:56 +00:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2006-11-22 14:57:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-03-05 16:11:46 +08:00
|
|
|
|
2010-01-25 14:11:06 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-04 16:06:13 -07:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ocfs2: fix occurring deadlock by changing ocfs2_wq from global to local
This patch fixes a deadlock, as follows:
Node 1 Node 2 Node 3
1)volume a and b are only mount vol a only mount vol b
mounted
2) start to mount b start to mount a
3) check hb of Node 3 check hb of Node 2
in vol a, qs_holds++ in vol b, qs_holds++
4) -------------------- all nodes' network down --------------------
5) progress of mount b the same situation as
failed, and then call Node 2
ocfs2_dismount_volume.
but the process is hung,
since there is a work
in ocfs2_wq cannot beo
completed. This work is
about vol a, because
ocfs2_wq is global wq.
BTW, this work which is
scheduled in ocfs2_wq is
ocfs2_orphan_scan_work,
and the context in this work
needs to take inode lock
of orphan_dir, because
lockres owner are Node 1 and
all nodes' nework has been down
at the same time, so it can't
get the inode lock.
6) Why can't this node be fenced
when network disconnected?
Because the process of
mount is hung what caused qs_holds
is not equal 0.
Because all works in the ocfs2_wq are relative to the super block.
The solution is to change the ocfs2_wq from global to local. In other
words, move it into struct ocfs2_super.
Signed-off-by: Yiwen Jiang <jiangyiwen@huawei.com>
Reviewed-by: Joseph Qi <joseph.qi@huawei.com>
Cc: Xue jiufei <xuejiufei@huawei.com>
Cc: Mark Fasheh <mfasheh@suse.de>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Cc: Junxiao Bi <junxiao.bi@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-03-25 14:21:32 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-02 14:02:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:11 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-13 14:49:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2009-02-10 20:00:41 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-14 15:17:27 -08:00
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2015-09-04 15:44:54 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2011-03-07 16:43:21 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-09 18:11:45 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-09 17:26:22 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-10-09 16:48:10 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-04 16:06:13 -07:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
ocfs2: fix occurring deadlock by changing ocfs2_wq from global to local
This patch fixes a deadlock, as follows:
Node 1 Node 2 Node 3
1)volume a and b are only mount vol a only mount vol b
mounted
2) start to mount b start to mount a
3) check hb of Node 3 check hb of Node 2
in vol a, qs_holds++ in vol b, qs_holds++
4) -------------------- all nodes' network down --------------------
5) progress of mount b the same situation as
failed, and then call Node 2
ocfs2_dismount_volume.
but the process is hung,
since there is a work
in ocfs2_wq cannot beo
completed. This work is
about vol a, because
ocfs2_wq is global wq.
BTW, this work which is
scheduled in ocfs2_wq is
ocfs2_orphan_scan_work,
and the context in this work
needs to take inode lock
of orphan_dir, because
lockres owner are Node 1 and
all nodes' nework has been down
at the same time, so it can't
get the inode lock.
6) Why can't this node be fenced
when network disconnected?
Because the process of
mount is hung what caused qs_holds
is not equal 0.
Because all works in the ocfs2_wq are relative to the super block.
The solution is to change the ocfs2_wq from global to local. In other
words, move it into struct ocfs2_super.
Signed-off-by: Yiwen Jiang <jiangyiwen@huawei.com>
Reviewed-by: Joseph Qi <joseph.qi@huawei.com>
Cc: Xue jiufei <xuejiufei@huawei.com>
Cc: Mark Fasheh <mfasheh@suse.de>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Cc: Junxiao Bi <junxiao.bi@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-03-25 14:21:32 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-11-22 14:57:56 +00:00
|
|
|
|
|
|
|
|
|
2014-06-04 16:06:13 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-12 08:26:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-22 14:20:18 +08:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-12 08:26:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
2007-10-18 15:30:42 -07:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-22 14:20:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-19 14:44:24 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-19 14:44:24 -07:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
2016-09-19 14:44:24 -07:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-10-18 15:30:42 -07:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-12 08:26:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-22 14:20:18 +08:00
|
|
|
|
2008-11-12 08:26:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
2008-11-12 08:26:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2008-11-12 08:26:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2008-11-12 08:26:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
2008-11-12 08:26:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-12 08:26:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-18 11:24:49 +08:00
|
|
|
|
2010-03-22 14:20:18 +08:00
|
|
|
|
|
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-22 14:20:18 +08:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
2010-03-22 14:20:18 +08:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-22 15:52:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-22 14:20:18 +08:00
|
|
|
|
2007-06-22 15:52:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-09-03 20:03:41 -07:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-25 08:05:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-02-04 22:28:29 -08:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-09-03 20:03:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-06 14:41:18 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
2007-02-16 11:46:50 -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
|
|
|
|
2007-02-16 11:46:50 -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
|
|
|
|
2007-02-16 11:46:50 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-06 14:41:18 -07: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
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -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
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2009-08-25 08:05:12 +08:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2007-07-06 14:41:18 -07:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2007-07-06 14:41:18 -07:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
2007-07-06 14:41:18 -07: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
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2010-08-24 14:28:03 +02:00
|
|
|
|
2007-02-16 11:46:50 -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
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-25 08:05:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-06 14:41:18 -07:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-07-06 14:41:18 -07:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-09-23 15:04:02 +02:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-21 16:42:44 -08:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:08:55 +08:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:08:55 +08:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
2008-08-18 17:08:55 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
2007-09-13 16:33:54 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:08:55 +08:00
|
|
|
|
2007-09-13 16:33:54 -07:00
|
|
|
|
|
|
|
|
|
2008-08-18 17:08:55 +08:00
|
|
|
|
|
|
|
|
|
2007-09-13 16:33:54 -07:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-18 17:08:55 +08:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
2008-08-18 17:08:55 +08:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 19:36:33 -07:00
|
|
|
|
2008-10-09 19:38:40 +02:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:45 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:45 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-09 19:38:40 +02:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-02-10 14:09:02 -08:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
2009-02-12 16:41:25 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-03 09:05:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-09 19:38:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-05 16:18:37 -07:00
|
|
|
|
2009-12-07 13:15:40 -08:00
|
|
|
|
2010-05-06 13:59:06 +08:00
|
|
|
|
2007-09-07 14:46:51 -07: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
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
2015-02-10 14:09:02 -08:00
|
|
|
|
2007-09-07 14:46:51 -07: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
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-03 14:46:48 -07:00
|
|
|
|
2007-09-13 16:33:54 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 03:54:22 -08:00
|
|
|
|
2009-02-13 03:24:43 -08:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
2015-02-10 14:09:02 -08:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-02-10 14:09:02 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
2008-10-09 19:38:40 +02:00
|
|
|
|
2010-03-03 09:05:00 -05:00
|
|
|
|
2008-10-09 19:38:40 +02:00
|
|
|
|
|
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
2015-02-10 14:09:02 -08:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
2015-04-14 15:42:45 -07:00
|
|
|
|
2015-04-14 15:42:42 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
2009-08-18 11:29:12 +08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-12-18 16:17:32 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-04-23 18:53:12 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2007-01-17 12:53:31 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-17 12:53:31 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:48 -07:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
2009-08-18 11:29:12 +08:00
|
|
|
|
2014-12-18 16:17:32 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
|
|
|
|
|
2014-12-18 16:17:32 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-17 12:53:31 -08:00
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2007-01-17 12:53:31 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
2014-12-18 16:17:32 -08:00
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-11 17:54:42 +08:00
|
|
|
|
2007-06-22 15:52:36 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-10 14:25:51 -08:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-12 16:41:25 -08:00
|
|
|
|
2008-10-17 19:25:01 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-14 07:48:04 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-03 14:47:08 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-02 15:59:37 -07:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
2017-11-02 15:59:37 -07:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
2017-11-02 15:59:37 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
2011-05-23 10:36:45 +08:00
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-02 15:59:37 -07:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-02 15:59:37 -07:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:13 -08:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-21 15:48:35 -08:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-21 15:48:35 -08:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:45 +08:00
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-21 15:48:35 -08:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-02 15:59:37 -07:00
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-22 15:40:57 -05:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|