diff --git a/module/zpios/zpios.c b/module/zpios/zpios.c index 7d170d17ee..e710d910d6 100644 --- a/module/zpios/zpios.c +++ b/module/zpios/zpios.c @@ -270,6 +270,8 @@ zpios_setup_run(run_args_t **run_args, zpios_cmd_t *kcmd, struct file *file) mutex_init(&ra->lock_work, NULL, MUTEX_DEFAULT, NULL); mutex_init(&ra->lock_ctl, NULL, MUTEX_DEFAULT, NULL); + (void)zpios_upcall(ra->pre, PHASE_PRE_RUN, ra, 0); + rc = zpios_dmu_setup(ra); if (rc) { mutex_destroy(&ra->lock_ctl); @@ -799,7 +801,7 @@ static int zpios_do_one_run(struct file *file, zpios_cmd_t *kcmd, int data_size, void *data) { - run_args_t *run_args; + run_args_t *run_args = { 0 }; zpios_stats_t *stats = (zpios_stats_t *)data; int i, n, m, size, rc; @@ -843,8 +845,6 @@ zpios_do_one_run(struct file *file, zpios_cmd_t *kcmd, return -ENOSPC; } - (void)zpios_upcall(kcmd->cmd_pre, PHASE_PRE_RUN, run_args, 0); - rc = zpios_setup_run(&run_args, kcmd, file); if (rc) return rc;