qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 06/11] curl: introduce CURLDataCache


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH v5 06/11] curl: introduce CURLDataCache
Date: Thu, 23 May 2013 16:09:29 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

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;



reply via email to

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