GeLiXin
b7faa7aabd
Fix self-healing IO prior to dsl_pool_init() completion
...
Async writes triggered by a self-healing IO may be issued before the
pool finishes the process of initialization. This results in a NULL
dereference of `spa->spa_dsl_pool` in vdev_queue_max_async_writes().
George Wilson recommended addressing this issue by initializing the
passed `dsl_pool_t **` prior to dmu_objset_open_impl(). Since the
caller is passing the `spa->spa_dsl_pool` this has the effect of
ensuring it's initialized.
However, since this depends on the caller knowing they must pass
the `spa->spa_dsl_pool` an additional NULL check was added to
vdev_queue_max_async_writes(). This guards against any future
restructuring of the code which might result in dsl_pool_init()
being called differently.
Signed-off-by: GeLiXin <47034221@qq.com >
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov >
Closes #4652
2016-05-27 14:11:25 -07:00
..
2016-05-25 14:11:53 -07:00
2014-08-01 14:28:05 -07:00
2015-01-16 14:41:26 -08:00
2015-05-11 15:10:24 -07:00
2016-01-08 15:08:19 -08:00
2016-01-08 20:23:23 -05:00
2015-06-11 10:27:25 -07:00
2016-04-27 16:24:15 -07:00
2015-01-16 14:41:26 -08:00
2015-08-19 14:32:50 -07:00
2016-01-08 15:08:19 -08:00
2016-03-10 14:25:22 -08:00
2016-03-10 09:49:22 -08:00
2016-05-11 12:14:24 -07:00
2016-03-10 14:25:22 -08:00
2016-01-21 16:59:30 -08:00
2016-01-12 13:51:27 -08:00
2016-01-21 16:59:30 -08:00
2016-01-08 15:08:19 -08:00
2016-01-12 09:02:33 -08:00
2015-05-04 09:41:10 -07:00
2016-03-10 09:49:22 -08:00
2015-12-15 16:12:31 -08:00
2015-05-04 09:41:10 -07:00
2016-03-10 09:49:22 -08:00
2016-03-10 09:49:22 -08:00
2016-05-27 14:11:25 -07:00
2016-03-15 18:46:44 -07:00
2016-02-05 11:29:32 -08:00
2015-05-04 09:41:10 -07:00
2015-05-04 09:41:10 -07:00
2016-01-15 15:38:36 -08:00
2013-12-18 16:46:35 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2016-04-21 09:49:25 -07:00
2016-03-30 09:36:51 -07:00
2015-12-22 10:21:33 -08:00
2016-04-21 09:49:25 -07:00
2015-06-25 08:58:16 -07:00
2015-01-16 14:41:26 -08:00
2015-07-06 09:34:13 -07:00
2015-12-30 13:20:12 -08:00
2010-08-31 13:41:59 -07:00
2010-08-31 13:41:58 -07:00
2016-05-02 14:27:45 -07:00
2014-08-06 14:48:41 -07:00
2015-05-11 12:23:16 -07:00
2016-03-09 10:41:31 -08:00
2015-06-11 10:27:25 -07:00
2016-05-12 12:36:32 -07:00
2016-01-08 15:08:19 -08:00
2015-01-16 14:41:26 -08:00
2016-05-26 10:11:51 -07:00
2016-01-13 13:55:12 -08:00
2015-07-14 10:35:21 -07:00
2015-01-16 14:41:26 -08:00
2016-01-15 15:38:36 -08:00
2016-05-26 10:11:51 -07:00
2016-05-26 10:11:51 -07:00
2016-05-25 15:49:35 -07:00
2016-02-26 11:24:35 -08:00
2015-04-30 15:07:47 -07:00
2016-05-27 14:11:25 -07:00
2015-04-30 15:07:47 -07:00
2013-10-31 14:58:04 -07:00
2016-05-25 15:49:35 -07:00
2015-04-28 16:25:20 -07:00
2016-05-10 10:38:21 -07:00
2016-05-10 10:38:21 -07:00
2015-12-04 14:20:20 -08:00
2016-05-17 11:52:07 -07:00
2016-04-05 18:54:55 -07:00
2010-08-31 13:41:58 -07:00
2016-05-19 13:06:14 -07:00
2015-09-04 16:08:14 -07:00
2016-04-05 18:54:55 -07:00
2016-02-17 10:43:02 -08:00
2013-10-30 14:51:27 -07:00
2016-05-05 16:19:12 -07:00
2015-05-11 12:23:16 -07:00
2015-06-22 17:02:13 -07:00
2016-04-21 09:49:25 -07:00
2016-05-17 10:29:02 -07:00
2016-05-19 13:06:14 -07:00
2016-01-15 15:33:45 -08:00
2016-05-19 13:06:14 -07:00
2016-05-23 11:06:56 -07:00
2015-07-28 13:36:47 -07:00
2014-08-01 14:28:05 -07:00
2015-07-10 12:11:45 -07:00
2016-05-26 10:11:51 -07:00
2016-05-26 10:11:51 -07:00
2010-05-28 13:45:14 -07:00
2016-05-20 11:09:16 -07:00
2015-08-31 13:54:39 -07:00
2016-05-20 11:09:16 -07:00
2016-04-21 09:49:25 -07:00
2015-09-25 12:45:42 -07:00
2016-04-25 08:42:08 -07:00
2015-04-30 14:43:40 -07:00
2016-05-20 11:08:55 -07:00