[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 13/17] vmdk: Implement .bdrv_co_pwritev() int
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v2 13/17] vmdk: Implement .bdrv_co_pwritev() interface |
Date: |
Fri, 29 Apr 2016 11:49:32 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 29.04.2016 um 10:49 hat Pavel Butsykin geschrieben:
> On 29.04.2016 06:08, Fam Zheng wrote:
> >On Thu, 04/28 15:16, Kevin Wolf wrote:
> >> static int vmdk_write_compressed(BlockDriverState *bs,
> >> int64_t sector_num,
> >> const uint8_t *buf,
> >> int nb_sectors)
> >> {
> >> BDRVVmdkState *s = bs->opaque;
> >>+
> >> if (s->num_extents == 1 && s->extents[0].compressed) {
> >>- return vmdk_write(bs, sector_num, buf, nb_sectors, false, false);
> >>+ Coroutine *co;
> >>+ AioContext *aio_context = bdrv_get_aio_context(bs);
> >>+ VmdkWriteCompressedCo data = {
> >>+ .bs = bs,
> >>+ .sector_num = sector_num,
> >>+ .buf = buf,
> >>+ .nb_sectors = nb_sectors,
> >>+ .ret = -EINPROGRESS,
> >>+ };
> >>+ co = qemu_coroutine_create(vmdk_co_write_compressed);
> >>+ qemu_coroutine_enter(co, &data);
> >>+ while (data.ret == -EINPROGRESS) {
> >>+ aio_poll(aio_context, true);
> >>+ }
> >>+ return data.ret;
> >
> >Don't you have a plan to make the creation of coroutine for compressed write
> >in
> >in block layer? Or will bdrv_co_pwritev gain a "compressed" flag
> >(BDRV_REQ_COMPRESSED) in the future?
> >
> Actually, I already have these patches as part of the issue of backup
> compression, hope to send today.
Sounds good. Do you use a new flag for the normal write functions or just
update the existing .bdrv_write_compressed function?
Also, please base your series on this one to avoid merge conflicts in
vmdk.c. I'm going to apply the series to block-next now as it's fully
reveiwed. I guess you'll effectively need to revert what this patch does
to vmdk_write_compressed() in favour of a block/io.c solution.
Kevin
- [Qemu-devel] [PATCH v2 10/17] vdi: Implement .bdrv_co_pwritev() interface, (continued)
- [Qemu-devel] [PATCH v2 10/17] vdi: Implement .bdrv_co_pwritev() interface, Kevin Wolf, 2016/04/28
- [Qemu-devel] [PATCH v2 05/17] block: Introduce .bdrv_co_preadv/pwritev BlockDriver function, Kevin Wolf, 2016/04/28
- [Qemu-devel] [PATCH v2 15/17] vpc: Implement .bdrv_co_pwritev() interface, Kevin Wolf, 2016/04/28
- [Qemu-devel] [PATCH v2 07/17] cloop: Implement .bdrv_co_preadv() interface, Kevin Wolf, 2016/04/28
- [Qemu-devel] [PATCH v2 11/17] vmdk: Add vmdk_find_offset_in_cluster(), Kevin Wolf, 2016/04/28
- [Qemu-devel] [PATCH v2 13/17] vmdk: Implement .bdrv_co_pwritev() interface, Kevin Wolf, 2016/04/28
- Re: [Qemu-devel] [PATCH v2 13/17] vmdk: Implement .bdrv_co_pwritev() interface, Kevin Wolf, 2016/04/29
[Qemu-devel] [PATCH v2 16/17] vvfat: Implement .bdrv_co_preadv/pwritev interfaces, Kevin Wolf, 2016/04/28
[Qemu-devel] [PATCH v2 17/17] block: Remove BlockDriver.bdrv_read/write, Kevin Wolf, 2016/04/28
[Qemu-devel] [PATCH v2 14/17] vpc: Implement .bdrv_co_preadv() interface, Kevin Wolf, 2016/04/28
[Qemu-devel] [PATCH v2 12/17] vmdk: Implement .bdrv_co_preadv() interface, Kevin Wolf, 2016/04/28
Re: [Qemu-devel] [PATCH v2 00/17] block: Convert .bdrv_read/write to .bdrv_preadv/pwritev, Fam Zheng, 2016/04/28
Re: [Qemu-devel] [PATCH v2 00/17] block: Convert .bdrv_read/write to .bdrv_preadv/pwritev, Kevin Wolf, 2016/04/29