On Fri, Jun 16, 2017 at 07:36:45PM +0200, Kevin Wolf wrote: > The qed block driver is one of the last remaining block drivers that use the > AIO callback style interfaces. This series converts it to the coroutine model > that other drivers are using and removes some AIO functions from the block > layer API afterwards. > > If this isn't compelling enough, the diffstat should speak for itself. > > This series is relatively long, but it consists mostly of mechanical > conversions of one function per patch, so it should be easy to review. > > v2: > - Add coroutine_fn markers [Stefan, Paolo] > - Use bdrv_co_*() instead of bdrv_*() in coroutine_fns > - Use ACB on stack in qed_co_request [Paolo] > - Updated some comments [Paolo] > - Unplug earlier in qed_clear_need_check() [Stefan] > - Removed now unused trace events [Stefan] > - Improved commit message of patch creating qed_aio_write_cow() [Eric] > > Kevin Wolf (31): > qed: Use bottom half to resume waiting requests > qed: Make qed_read_table() synchronous > qed: Remove callback from qed_read_table() > qed: Remove callback from qed_read_l2_table() > qed: Remove callback from qed_find_cluster() > qed: Make qed_read_backing_file() synchronous > qed: Make qed_copy_from_backing_file() synchronous > qed: Remove callback from qed_copy_from_backing_file() > qed: Make qed_write_header() synchronous > qed: Remove callback from qed_write_header() > qed: Make qed_write_table() synchronous > qed: Remove GenericCB > qed: Remove callback from qed_write_table() > qed: Make qed_aio_read_data() synchronous > qed: Make qed_aio_write_main() synchronous > qed: Inline qed_commit_l2_update() > qed: Add return value to qed_aio_write_l1_update() > qed: Add return value to qed_aio_write_l2_update() > qed: Add return value to qed_aio_write_main() > qed: Add return value to qed_aio_write_cow() > qed: Add return value to qed_aio_write_inplace/alloc() > qed: Add return value to qed_aio_read/write_data() > qed: Remove ret argument from qed_aio_next_io() > qed: Remove recursion in qed_aio_next_io() > qed: Implement .bdrv_co_readv/writev > qed: Use CoQueue for serialising allocations > qed: Simplify request handling > qed: Use a coroutine for need_check_timer > qed: Add coroutine_fn to I/O path functions > qed: Use bdrv_co_* for coroutine_fns > block: Remove bdrv_aio_readv/writev/flush() > > block/Makefile.objs | 2 +- > block/io.c | 171 ----------- > block/qed-cluster.c | 124 ++++---- > block/qed-gencb.c | 33 --- > block/qed-table.c | 261 ++++++----------- > block/qed.c | 773 > +++++++++++++++++++------------------------------- > block/qed.h | 54 +--- > block/trace-events | 3 - > include/block/block.h | 8 - > 9 files changed, 438 insertions(+), 991 deletions(-) > delete mode 100644 block/qed-gencb.c > > -- > 1.8.3.1 >
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature