2019-05-24 12:04:05 +02:00
|
|
|
|
2021-05-06 18:06:44 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-26 12:44:15 +01:00
|
|
|
|
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-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
|
|
|
|
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-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-20 16:25:06 -07: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
|
|
|
|
2024-11-15 18:10:13 +03: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -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
|
|
|
|
|
|
|
|
|
2026-04-03 17:08:02 +08:00
|
|
|
|
2015-09-04 15:44:17 -07:00
|
|
|
|
2015-09-04 15:44:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-04-03 17:08:02 +08: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
|
|
|
|
2023-10-19 03:18:11 +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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-26 12:44:15 +01: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-15 18:10:13 +03: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
|
|
|
|
2026-02-21 16:37:42 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-15 18:10:13 +03: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-07 14:25:16 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-20 16:30:07 -07: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-14 11:49:08 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-12-19 16:31:52 +08:00
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2025-12-19 16:31:52 +08:00
|
|
|
|
|
|
|
|
|
2009-02-12 18:08:48 -08:00
|
|
|
|
2025-12-19 16:31:52 +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-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
|
|
|
|
|
|
|
|
|
2022-01-14 14:03:45 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
2019-11-05 17:44:18 +01:00
|
|
|
|
2009-08-18 11:44:07 +08:00
|
|
|
|
2019-11-05 17:44:18 +01:00
|
|
|
|
2009-08-18 11:44:07 +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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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-06-18 10:48:04 -07:00
|
|
|
|
2009-07-21 15:42:05 +08:00
|
|
|
|
2007-06-18 10:48:04 -07: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-07-21 15:42:05 +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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 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
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
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
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
2007-06-18 10:48:04 -07: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
|
|
|
|
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
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
|
|
|
|
|
2024-11-15 18:10:13 +03: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
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:54:36 -08: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-07 16:46:57 -08:00
|
|
|
|
2007-01-16 11:32:23 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-13 02:54:36 -08: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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-06-18 10:48:04 -07:00
|
|
|
|
2007-01-16 11:32:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-04-01 21:03:38 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:14:55 -08:00
|
|
|
|
2007-06-18 10:48:04 -07: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-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-02-13 02:24: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-17 22:32:01 -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-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:24:10 -08: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-15 18:10:13 +03: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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-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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
treewide: Remove uninitialized_var() usage
Using uninitialized_var() is dangerous as it papers over real bugs[1]
(or can in the future), and suppresses unrelated compiler warnings
(e.g. "unused variable"). If the compiler thinks it is uninitialized,
either simply initialize the variable or make compiler changes.
In preparation for removing[2] the[3] macro[4], remove all remaining
needless uses with the following script:
git grep '\buninitialized_var\b' | cut -d: -f1 | sort -u | \
xargs perl -pi -e \
's/\buninitialized_var\(([^\)]+)\)/\1/g;
s:\s*/\* (GCC be quiet|to make compiler happy) \*/$::g;'
drivers/video/fbdev/riva/riva_hw.c was manually tweaked to avoid
pathological white-space.
No outstanding warnings were found building allmodconfig with GCC 9.3.0
for x86_64, i386, arm64, arm, powerpc, powerpc64le, s390x, mips, sparc64,
alpha, and m68k.
[1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/
[2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/
[3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/
[4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/
Reviewed-by: Leon Romanovsky <leonro@mellanox.com> # drivers/infiniband and mlx4/mlx5
Acked-by: Jason Gunthorpe <jgg@mellanox.com> # IB
Acked-by: Kalle Valo <kvalo@codeaurora.org> # wireless drivers
Reviewed-by: Chao Yu <yuchao0@huawei.com> # erofs
Signed-off-by: Kees Cook <keescook@chromium.org>
2020-06-03 13:09:38 -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
|
|
|
|
2011-02-22 08:21:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-12-15 14:31:24 -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
|
|
|
|
2024-09-17 18:51:56 +00: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-06-18 10:48:04 -07: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
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-05 17:44:18 +01: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
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
2021-11-05 13:34:45 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-11-05 13:34:45 -07: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-22 14:38:45 -07:00
|
|
|
|
2007-07-03 13:34:11 -07:00
|
|
|
|
2005-12-15 14:31:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-23 15:33:40 -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
|
|
|
|
|
|
|
|
|
2020-10-13 16:48:21 -07:00
|
|
|
|
2019-09-23 15:33:40 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-05-18 15:13:25 +00:00
|
|
|
|
2019-09-23 15:33:40 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-08 10:41:19 +08:00
|
|
|
|
|
|
|
|
|
2025-11-27 11:26:40 +08: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-08 10:41:19 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-27 11:26:40 +08:00
|
|
|
|
2025-01-08 10:41:19 +08:00
|
|
|
|
2025-11-27 11:26:40 +08:00
|
|
|
|
|
|
|
|
|
2025-01-08 10:41:19 +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
|
|
|
|
2019-07-11 20:53:19 -07: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -08:00
|
|
|
|
2007-06-22 15:45:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-26 12:44:15 +01: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:41 +00:00
|
|
|
|
2019-09-23 15:33:08 -07:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
2024-12-05 17:16:42 +00:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:41 +00:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:41 +00:00
|
|
|
|
2008-09-03 20:03:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-23 15:33:08 -07:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:41 +00:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
2024-12-05 17:16:41 +00:00
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:50 +00:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2024-12-05 17:16:50 +00:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2024-12-05 17:16:46 +00:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2025-10-24 18:08:09 +01:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2025-04-11 11:31:24 -05:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-19 12:41:51 +03:00
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
|
|
|
|
|
2009-08-25 08:05:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
2009-08-25 08:05:12 +08:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
2021-11-05 13:34:58 -07:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2023-12-15 20:02:44 +00:00
|
|
|
|
2021-11-05 13:34:58 -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
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
|
|
|
|
|
2021-11-05 13:34:58 -07:00
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
|
|
|
|
|
2021-11-05 13:34:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -08:00
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:20:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
|
|
|
|
|
2007-02-16 11:46:50 -08:00
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00:00
|
|
|
|
2014-02-06 12:04:20 -08:00
|
|
|
|
|
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
treewide: Remove uninitialized_var() usage
Using uninitialized_var() is dangerous as it papers over real bugs[1]
(or can in the future), and suppresses unrelated compiler warnings
(e.g. "unused variable"). If the compiler thinks it is uninitialized,
either simply initialize the variable or make compiler changes.
In preparation for removing[2] the[3] macro[4], remove all remaining
needless uses with the following script:
git grep '\buninitialized_var\b' | cut -d: -f1 | sort -u | \
xargs perl -pi -e \
's/\buninitialized_var\(([^\)]+)\)/\1/g;
s:\s*/\* (GCC be quiet|to make compiler happy) \*/$::g;'
drivers/video/fbdev/riva/riva_hw.c was manually tweaked to avoid
pathological white-space.
No outstanding warnings were found building allmodconfig with GCC 9.3.0
for x86_64, i386, arm64, arm, powerpc, powerpc64le, s390x, mips, sparc64,
alpha, and m68k.
[1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/
[2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/
[3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/
[4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/
Reviewed-by: Leon Romanovsky <leonro@mellanox.com> # drivers/infiniband and mlx4/mlx5
Acked-by: Jason Gunthorpe <jgg@mellanox.com> # IB
Acked-by: Kalle Valo <kvalo@codeaurora.org> # wireless drivers
Reviewed-by: Chao Yu <yuchao0@huawei.com> # erofs
Signed-off-by: Kees Cook <keescook@chromium.org>
2020-06-03 13:09:38 -07:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ocfs2: fix data corruption after conversion from inline format
Commit 6dbf7bb55598 ("fs: Don't invalidate page buffers in
block_write_full_page()") uncovered a latent bug in ocfs2 conversion
from inline inode format to a normal inode format.
The code in ocfs2_convert_inline_data_to_extents() attempts to zero out
the whole cluster allocated for file data by grabbing, zeroing, and
dirtying all pages covering this cluster. However these pages are
beyond i_size, thus writeback code generally ignores these dirty pages
and no blocks were ever actually zeroed on the disk.
This oversight was fixed by commit 693c241a5f6a ("ocfs2: No need to zero
pages past i_size.") for standard ocfs2 write path, inline conversion
path was apparently forgotten; the commit log also has a reasoning why
the zeroing actually is not needed.
After commit 6dbf7bb55598, things became worse as writeback code stopped
invalidating buffers on pages beyond i_size and thus these pages end up
with clean PageDirty bit but with buffers attached to these pages being
still dirty. So when a file is converted from inline format, then
writeback triggers, and then the file is grown so that these pages
become valid, the invalid dirtiness state is preserved,
mark_buffer_dirty() does nothing on these pages (buffers are already
dirty) but page is never written back because it is clean. So data
written to these pages is lost once pages are reclaimed.
Simple reproducer for the problem is:
xfs_io -f -c "pwrite 0 2000" -c "pwrite 2000 2000" -c "fsync" \
-c "pwrite 4000 2000" ocfs2_file
After unmounting and mounting the fs again, you can observe that end of
'ocfs2_file' has lost its contents.
Fix the problem by not doing the pointless zeroing during conversion
from inline format similarly as in the standard write path.
[akpm@linux-foundation.org: fix whitespace, per Joseph]
Link: https://lkml.kernel.org/r/20210930095405.21433-1-jack@suse.cz
Fixes: 6dbf7bb55598 ("fs: Don't invalidate page buffers in block_write_full_page()")
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Tested-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Acked-by: Gang He <ghe@suse.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Jun Piao <piaojun@huawei.com>
Cc: "Markov, Andrey" <Markov.Andrey@Dell.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-10-18 15:15:39 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ocfs2: fix data corruption after conversion from inline format
Commit 6dbf7bb55598 ("fs: Don't invalidate page buffers in
block_write_full_page()") uncovered a latent bug in ocfs2 conversion
from inline inode format to a normal inode format.
The code in ocfs2_convert_inline_data_to_extents() attempts to zero out
the whole cluster allocated for file data by grabbing, zeroing, and
dirtying all pages covering this cluster. However these pages are
beyond i_size, thus writeback code generally ignores these dirty pages
and no blocks were ever actually zeroed on the disk.
This oversight was fixed by commit 693c241a5f6a ("ocfs2: No need to zero
pages past i_size.") for standard ocfs2 write path, inline conversion
path was apparently forgotten; the commit log also has a reasoning why
the zeroing actually is not needed.
After commit 6dbf7bb55598, things became worse as writeback code stopped
invalidating buffers on pages beyond i_size and thus these pages end up
with clean PageDirty bit but with buffers attached to these pages being
still dirty. So when a file is converted from inline format, then
writeback triggers, and then the file is grown so that these pages
become valid, the invalid dirtiness state is preserved,
mark_buffer_dirty() does nothing on these pages (buffers are already
dirty) but page is never written back because it is clean. So data
written to these pages is lost once pages are reclaimed.
Simple reproducer for the problem is:
xfs_io -f -c "pwrite 0 2000" -c "pwrite 2000 2000" -c "fsync" \
-c "pwrite 4000 2000" ocfs2_file
After unmounting and mounting the fs again, you can observe that end of
'ocfs2_file' has lost its contents.
Fix the problem by not doing the pointless zeroing during conversion
from inline format similarly as in the standard write path.
[akpm@linux-foundation.org: fix whitespace, per Joseph]
Link: https://lkml.kernel.org/r/20210930095405.21433-1-jack@suse.cz
Fixes: 6dbf7bb55598 ("fs: Don't invalidate page buffers in block_write_full_page()")
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Tested-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Acked-by: Gang He <ghe@suse.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Jun Piao <piaojun@huawei.com>
Cc: "Markov, Andrey" <Markov.Andrey@Dell.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-10-18 15:15:39 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:46 +00:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:47 +00: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
|
|
|
|
|
|
|
|
|
2024-12-05 17:16:46 +00: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
|
|
|
|
2024-12-05 17:16:44 +00: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-04 10:32:42 -05: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
|
|
|
|
2007-01-16 11:32:23 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-04-10 14:32:38 -07: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-04-29 11:12:16 -04:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-04 14:52:41 -04:00
|
|
|
|
2007-09-07 14:46:51 -07:00
|
|
|
|
2023-10-04 14:52:41 -04: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-05 15:41:45 -08:00
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
2019-03-05 15:41:45 -08:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-05-28 23:12:47 +08:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
2019-03-05 15:41:45 -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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-05 15:41:45 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-05 15:41:45 -08:00
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:13 -08:00
|
|
|
|
2019-03-05 15:41:45 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-31 16:15:13 -08:00
|
|
|
|
|
|
|
|
|
2019-03-05 15:41: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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-05 15:41:45 -08:00
|
|
|
|
2018-01-31 16:15:13 -08:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-05 15:41:45 -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
|
|
|
|
2019-03-05 15:41:45 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-13 16:48:24 -07:00
|
|
|
|
|
|
|
|
|
2019-03-05 15:41:45 -08:00
|
|
|
|
2020-10-13 16:48:24 -07:00
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
2023-08-28 13:17:41 +08:00
|
|
|
|
2019-03-05 15:41:45 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-05-23 10:36:43 +08:00
|
|
|
|
|
|
|
|
|