Il 29/02/2012 00:54, Michael Tokarev ha scritto:
> -static coroutine_fn int cow_co_write(BlockDriverState *bs, int64_t 
> sector_num,
> -                                     const uint8_t *buf, int nb_sectors)
> +static coroutine_fn int cow_co_rw(BlockDriverState *bs, int64_t sector_num,
> +                                  uint8_t *buf, int nb_sectors, bool 
> is_write)
>  {
>      int ret;
>      BDRVCowState *s = bs->opaque;
>      qemu_co_mutex_lock(&s->lock);
> -    ret = cow_write(bs, sector_num, buf, nb_sectors);
> +    ret = is_write ? cow_write(bs, sector_num, buf, nb_sectors) :
> +                     cow_read(bs, sector_num, buf, nb_sectors);
>      qemu_co_mutex_unlock(&s->lock);
>      return ret;

NACK,

the real cleanup here would be to move the lock/unlock inside cow_read
and cow_write.

Paolo

Reply via email to