From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56023) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfWZQ-0006uT-SW for qemu-devel@nongnu.org; Thu, 23 May 2013 10:32:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UfWZO-0006AC-Kn for qemu-devel@nongnu.org; Thu, 23 May 2013 10:32:44 -0400 Received: from mail-we0-x233.google.com ([2a00:1450:400c:c03::233]:43384) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfWZO-00069L-DS for qemu-devel@nongnu.org; Thu, 23 May 2013 10:32:42 -0400 Received: by mail-we0-f179.google.com with SMTP id m46so2167430wev.24 for ; Thu, 23 May 2013 07:32:41 -0700 (PDT) Date: Thu, 23 May 2013 16:32:37 +0200 From: Stefan Hajnoczi Message-ID: <20130523143237.GS9093@stefanha-thinkpad.redhat.com> References: <1369280289-20928-1-git-send-email-famz@redhat.com> <1369280289-20928-9-git-send-email-famz@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1369280289-20928-9-git-send-email-famz@redhat.com> Subject: Re: [Qemu-devel] [PATCH v5 08/11] curl: use list to store CURLState List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: kwolf@redhat.com, jcody@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com 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 - 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)?