From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:42157) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfkEZ-0005j4-66 for qemu-devel@nongnu.org; Fri, 24 May 2013 01:08:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UfkEW-0006LF-Lz for qemu-devel@nongnu.org; Fri, 24 May 2013 01:08:07 -0400 Received: from mx1.redhat.com ([209.132.183.28]:7752) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfkEW-0006Jm-7I for qemu-devel@nongnu.org; Fri, 24 May 2013 01:08:04 -0400 Date: Fri, 24 May 2013 13:07:58 +0800 From: Fam Zheng Message-ID: <20130524050758.GA1517@localhost.nay.redhat.com> References: <1369280289-20928-1-git-send-email-famz@redhat.com> <1369280289-20928-9-git-send-email-famz@redhat.com> <20130523143237.GS9093@stefanha-thinkpad.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130523143237.GS9093@stefanha-thinkpad.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: Stefan Hajnoczi Cc: kwolf@redhat.com, jcody@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com On Thu, 05/23 16:32, Stefan Hajnoczi wrote: > 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 :-). Removing. > > > @@ -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. Removing. > > > > > 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)? It's introduced before this series. I'll move it to a separate patch. -- Fam