block: drop bdrv_prwv
commitfae2681add3bb2f6a5172eceaec0b90a12a73e96
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Thu, 24 Sep 2020 18:54:13 +0000 (24 21:54 +0300)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 5 Oct 2020 09:59:42 +0000 (5 10:59 +0100)
treee408dc164b3e7cf31b80d4cb5306d5e6aa5521a7
parent9bb4b066cce7b3cc1f5893dd5f05bf9ee279d383
block: drop bdrv_prwv

Now that we are not maintaining boilerplate code for coroutine
wrappers, there is no more sense in keeping the extra indirection layer
of bdrv_prwv().  Let's drop it and instead generate pure bdrv_preadv()
and bdrv_pwritev().

Currently, bdrv_pwritev() and bdrv_preadv() are returning bytes on
success, auto generated functions will instead return zero, as their
_co_ prototype. Still, it's simple to make the conversion safe: the
only external user of bdrv_pwritev() is test-bdrv-drain, and it is
comfortable enough with bdrv_co_pwritev() instead. So prototypes are
moved to local block/coroutines.h. Next, the only internal use is
bdrv_pread() and bdrv_pwrite(), which are modified to return bytes on
success.

Of course, it would be great to convert bdrv_pread() and bdrv_pwrite()
to return 0 on success. But this requires audit (and probably
conversion) of all their users, let's leave it for another day
refactoring.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200924185414.28642-7-vsementsov@virtuozzo.com>
block/coroutines.h
block/io.c
include/block/block.h
tests/test-bdrv-drain.c