Makes sense - I see why it makes reporting better at realize time. Thanks for the clarification.
On Thu, Apr 29, 2021 at 11:26:29AM +0200, Kevin Wolf wrote: > Am 28.04.2021 um 20:08 hat Raphael Norwitz geschrieben: > > Code looks ok - question about the commit message. > > > > Acked-by: Raphael Norwitz <raphael.norw...@nutanix.com> > > > > On Thu, Apr 22, 2021 at 07:02:18PM +0200, Kevin Wolf wrote: > > > Now that vhost_user_blk_connect() is not called from an event handler > > > any more, but directly from vhost_user_blk_device_realize(), we don't > > > have to resort to error_report() any more, but can use Error again. > > > > vhost_user_blk_connect() is still called by vhost_user_blk_event() which > > is registered as an event handler. I don't understand your point around > > us having had to use error_report() before, but not anymore. Can you > > clarify? > > What I meant is that vhost_user_blk_event() can't really make use of an > Error object other than passing it to error_report_err(), which has the > same result as directly using error_report(). > > With the new code where vhost_user_blk_device_realize() calls the > function directly, we can actually return the error to its caller so > that it ends up in the QMP result or the command line error message. > > The result is still not great because vhost_user_blk_connect() doesn't > know the original error message. We'd have to add Error to > vhost_dev_init() and the functions that it calls to get the real error > messages, but at least it's a first step in the right direction. > > We already figured that we need to change error reporting so we can know > whether we should retry, so I guess this can be solved at the same time. > > Kevin >