qemu-block
[Top][All Lists]
Advanced

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

Re: [Qemu-block] [PATCH v2 2/3] error: Remove unnecessary local_err vari


From: Eduardo Habkost
Subject: Re: [Qemu-block] [PATCH v2 2/3] error: Remove unnecessary local_err variables
Date: Fri, 10 Jun 2016 19:39:30 -0300
User-agent: Mutt/1.6.1 (2016-04-27)

On Fri, Jun 10, 2016 at 02:59:55PM -0600, Eric Blake wrote:
> On 06/10/2016 02:12 PM, Eduardo Habkost wrote:
> > This patch simplifies code that uses a local_err variable just to
> > immediately use it for an error_propagate() call.
> > 
> > Coccinelle patch used to perform the changes added to
> > scripts/coccinelle/remove_local_err.cocci.
> > 
> > Signed-off-by: Eduardo Habkost <address@hidden>
> > ---
> >  block.c                                   |  8 ++------
> >  block/raw-posix.c                         |  8 ++------
> >  block/raw_bsd.c                           |  4 +---
> >  blockdev.c                                | 16 +++++-----------
> >  hw/s390x/s390-virtio-ccw.c                |  5 +----
> >  hw/s390x/virtio-ccw.c                     | 28 +++++++---------------------
> >  scripts/coccinelle/remove_local_err.cocci | 27 +++++++++++++++++++++++++++
> >  target-i386/cpu.c                         |  4 +---
> >  8 files changed, 46 insertions(+), 54 deletions(-)
> >  create mode 100644 scripts/coccinelle/remove_local_err.cocci
> > 
> 
> > +++ b/block.c
> > @@ -294,14 +294,12 @@ typedef struct CreateCo {
> >  
> >  static void coroutine_fn bdrv_create_co_entry(void *opaque)
> >  {
> > -    Error *local_err = NULL;
> >      int ret;
> >  
> >      CreateCo *cco = opaque;
> >      assert(cco->drv);
> >  
> > -    ret = cco->drv->bdrv_create(cco->filename, cco->opts, &local_err);
> > -    error_propagate(&cco->err, local_err);
> > +    ret = cco->drv->bdrv_create(cco->filename, cco->opts, &cco->err);
> >      cco->ret = ret;
> 
> This hunk doesn't get simplified by 3/3; you may want to consider a
> manual followup to drop 'int ret' and just assign
> cco->drv->bdrv_create() directly to cco->ret.  But doesn't change this
> patch.

This could become yet another Coccinelle script, but we need to
be careful about type conversions, and tell it to do it only if
the types of 'ret', 'cc->drv->bdrv_create()' and 'cco->ret' are
the same.

-- 
Eduardo



reply via email to

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