On Thu, Dec 06, 2018 at 03:08:31PM +0000, Paul Durrant wrote: > @@ -36,6 +54,12 @@ static void xen_block_unrealize(XenDevice *xendev, Error > **errp) > > trace_xen_block_unrealize(type, vdev->disk, vdev->partition); > > + /* Disconnect from the frontend in case this has not already happened */ > + xen_block_disconnect(xendev, &local_err); > + if (local_err) { > + error_propagate(errp, local_err);
If xen_block_disconnect fails, local_err is going to be reuse below. If it's fine to try unrealize, then `local_err=NULL` is probably enough. > + } > + > if (blockdev_class->unrealize) { > blockdev_class->unrealize(blockdev, &local_err); > if (local_err) { [...] > +static void xen_bus_remove_watch(XenBus *xenbus, XenWatch *watch, > + Error **errp) > +{ > + Error *local_err = NULL; > + > + trace_xen_bus_remove_watch(watch->node, watch->key, watch->token); > + > + xs_node_unwatch(xenbus->xsh, watch->node, watch->key, watch->token, > + &local_err); You could simply pass `errp' directly instead of having `local_err'. > + > + notifier_remove(&watch->notifier); > + free_watch(watch); > + > + if (local_err) { > + error_propagate(errp, local_err); > + } > +} > + -- Anthony PERARD