From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:48648) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfWHU-00031k-NH for qemu-devel@nongnu.org; Thu, 23 May 2013 10:14:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UfWHS-0006q7-Li for qemu-devel@nongnu.org; Thu, 23 May 2013 10:14:12 -0400 Received: from mail-we0-x22c.google.com ([2a00:1450:400c:c03::22c]:62534) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfWD1-0004Ow-8K for qemu-devel@nongnu.org; Thu, 23 May 2013 10:09:35 -0400 Received: by mail-we0-f172.google.com with SMTP id w62so2044361wes.31 for ; Thu, 23 May 2013 07:09:34 -0700 (PDT) Date: Thu, 23 May 2013 16:09:29 +0200 From: Stefan Hajnoczi Message-ID: <20130523140929.GQ9093@stefanha-thinkpad.redhat.com> References: <1369280289-20928-1-git-send-email-famz@redhat.com> <1369280289-20928-7-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-7-git-send-email-famz@redhat.com> Subject: Re: [Qemu-devel] [PATCH v5 06/11] curl: introduce CURLDataCache 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:04AM +0800, Fam Zheng wrote: > +typedef struct CURLDataCache { > + char *data; > + size_t base_pos; Must be int64_t. QEMU compiled on 32-bit hosts would only allow 4 GB images with size_t! > + size_t data_len; > + size_t write_pos; > + /* Ref count for CURLState */ > + int use_count; It's better to introduce this field when you add code to use it. When possible, don't add unused code in a patch, it makes it harder to review. > +static void curl_complete_io(BDRVCURLState *bs, CURLAIOCB *acb, > + CURLDataCache *cache) > +{ > + size_t aio_base = acb->sector_num * SECTOR_SIZE; int64_t > + size_t aio_bytes = acb->nb_sectors * SECTOR_SIZE; > + size_t off = aio_base - cache->base_pos; > + > + qemu_iovec_from_buf(acb->qiov, 0, cache->data + off, aio_bytes); > + acb->common.cb(acb->common.opaque, 0); > + DPRINTF("AIO Request OK: %10zd %10zd\n", aio_base, aio_bytes); PRId64 for 64-bit aio_base > @@ -589,26 +577,24 @@ static const AIOCBInfo curl_aiocb_info = { > static void curl_readv_bh_cb(void *p) > { > CURLState *state; > - > + CURLDataCache *cache = NULL; > CURLAIOCB *acb = p; > BDRVCURLState *s = acb->common.bs->opaque; > + size_t aio_base, aio_bytes; int64_t aio_base;