qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [PATCH v2 05/18] xen: add xenstore watcher infrastructu


From: Paul Durrant
Subject: Re: [Qemu-block] [PATCH v2 05/18] xen: add xenstore watcher infrastructure
Date: Mon, 10 Dec 2018 09:43:13 +0000

> -----Original Message-----
> From: Anthony PERARD [mailto:address@hidden
> Sent: 07 December 2018 15:58
> To: Paul Durrant <address@hidden>
> Cc: address@hidden; address@hidden; xen-
> address@hidden; Kevin Wolf <address@hidden>; Max Reitz
> <address@hidden>; Stefano Stabellini <address@hidden>
> Subject: Re: [PATCH v2 05/18] xen: add xenstore watcher infrastructure
> 
> 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.
> 

Actually, on this path there is nothing useful to be done with an error... 
disconnect really really should not fail, so I'll pass NULL instead to ignore 
any error.

> > +    }
> > +
> >      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'.
> 

Indeed.

  Paul

> > +
> > +    notifier_remove(&watch->notifier);
> > +    free_watch(watch);
> > +
> > +    if (local_err) {
> > +        error_propagate(errp, local_err);
> > +    }
> > +}
> > +
> 
> --
> Anthony PERARD



reply via email to

[Prev in Thread] Current Thread [Next in Thread]