Please check the commits one by one. The key is the last commit: freeing zone_update_t->apply_ctx_t after RCU settles down.