qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 08/11] curl: use list to store CURLState


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH v5 08/11] curl: use list to store CURLState
Date: Thu, 23 May 2013 16:32:37 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, May 23, 2013 at 11:38:06AM +0800, Fam Zheng wrote:
> @@ -660,9 +651,13 @@ static BlockDriverAIOCB *curl_aio_readv(BlockDriverState 
> *bs,
>  static void curl_close(BlockDriverState *bs)
>  {
>      BDRVCURLState *s = bs->opaque;
> -    int i;
>  
>      DPRINTF("CURL: Close\n");
> +    if (s->timer) {
> +        qemu_del_timer(s->timer);
> +        qemu_free_timer(s->timer);
> +        s->timer = NULL;
> +    }

This hunk is duplicated, see the next line :-).

> @@ -670,16 +665,26 @@ static void curl_close(BlockDriverState *bs)
>          s->timer = NULL;
>      }
>  
> -    for (i=0; i<CURL_NUM_STATES; i++) {
> -        if (s->states[i].in_use)
> -            curl_clean_state(&s->states[i]);
> -        if (s->states[i].curl) {
> -            curl_easy_cleanup(s->states[i].curl);
> -            s->states[i].curl = NULL;
> -        }
> +    while (!QLIST_EMPTY(&s->curl_states)) {
> +        CURLState *state = QLIST_FIRST(&s->curl_states);
> +        /* Remove and clean curl easy handles */
> +        curl_clean_state(state);
> +        QLIST_REMOVE(state, next);
> +        g_free(state);
> +        state = NULL;
>      }
> -    if (s->multi)
> +
> +    if (s->multi) {
>          curl_multi_cleanup(s->multi);
> +    }
> +
> +    while (!QLIST_EMPTY(&s->acbs)) {
> +        CURLAIOCB *acb = QLIST_FIRST(&s->acbs);
> +        acb->common.cb(acb->common.opaque, -EIO);
> +        QLIST_REMOVE(acb, next);
> +        qemu_aio_release(acb);
> +        acb = NULL;
> +    }

Duplicated?  See line below.

>  
>      while (!QLIST_EMPTY(&s->acbs)) {
>          CURLAIOCB *acb = QLIST_FIRST(&s->acbs);
> @@ -709,6 +714,7 @@ static void curl_close(BlockDriverState *bs)
>      }
>  
>      g_free(s->url);
> +    s->url = NULL;
>  }
>  

Can s->url = NULL be merged into a previous patch which adds
g_free(s->url)?



reply via email to

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