So this new callback is exectured just before blk_revalidate_zone_cb returns and thus control is transferred back to the driver. What speaks against just implementing this logic after the callback returns? ->report_zones is not just called for validation, but does that matter? If yes we can pass a flag, which still seems a bit better than a code flow with multiple callbacks.