On Thu, 05/23 16:09, Stefan Hajnoczi wrote:
> 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!
OK.
>
> > + 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.
Moving to later patch.
>
> > +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
OK, thanks.
>
> > @@ -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;
Yes, will change.
--
Fam