On 10/14/2011 04:23 PM, Kevin Wolf wrote:
> This similarly adds support for coroutine and asynchronous discard.
>
> Signed-off-by: Paolo Bonzini<pbonz...@redhat.com>
Do we really need bdrv_discard and bdrv_aio_discard in the backends? I
think it makes sense to have a bdrv_aio_discard() in block.h as AIO
generally fits well for device models, but I would just require
bdrv_co_discard for any block drivers implementing discard.
bdrv_discard is needed for now since I wouldn't like to conflate this
patch with the qcow2 patch.
I can certainly drop aio_discard from the backends, but I'm not sure how
heavy can fallocate be (with FALLOC_FL_PUNCH_HOLE). Probably not much,
but I think there's no guarantee of O(1) behavior especially with
filesystems like ecryptfs. So you would need to go through the thread
pool and aio_discard would come in handy.
Paolo