On 27.09.2016 10:20, Kevin Wolf wrote: > Am 26.09.2016 um 18:49 hat Max Reitz geschrieben: >> On 23.09.2016 16:32, Kevin Wolf wrote: >>> The option whether or not to use a native AIO interface really isn't a >>> generic option for all drivers, but only applies to the native file >>> protocols. This patch moves the option in blockdev-add to the >>> appropriate places (raw-posix and raw-win32). >>> >>> We still have to keep the flag BDRV_O_NATIVE_AIO for compatibility >>> because so far the AIO option was usually specified on the wrong layer >>> (the top-level format driver, which didn't even look at it) and then >>> inherited by the protocol driver (where it was actually used). We can't >>> forbid this use except in new interfaces. >>> >>> Signed-off-by: Kevin Wolf <kw...@redhat.com> >>> --- >>> block/raw-posix.c | 44 ++++++++++++++++++++++++--------------- >>> block/raw-win32.c | 56 >>> +++++++++++++++++++++++++++++++++++++++++++++----- >>> qapi/block-core.json | 6 +++--- >>> tests/qemu-iotests/087 | 4 ++-- >>> 4 files changed, 83 insertions(+), 27 deletions(-) >> >> [...] >> >>> diff --git a/block/raw-win32.c b/block/raw-win32.c >>> index 56f45fe..734bb10 100644 >>> --- a/block/raw-win32.c >>> +++ b/block/raw-win32.c >> >> [...] >> >>> +static bool get_aio_option(QemuOpts *opts, int flags, Error **errp) >>> +{ >>> + BlockdevAioOptions aio, aio_default; >>> + >>> + aio_default = (flags & BDRV_O_NATIVE_AIO) ? BLOCKDEV_AIO_OPTIONS_NATIVE >>> + : >>> BLOCKDEV_AIO_OPTIONS_THREADS; >>> + aio = qapi_enum_parse(BlockdevAioOptions_lookup, qemu_opt_get(opts, >>> "aio"), >>> + BLOCKDEV_AIO_OPTIONS__MAX, aio_default, errp); >>> + >>> + switch (aio) { >>> + case BLOCKDEV_AIO_OPTIONS_NATIVE: >>> + return true; >>> + case BLOCKDEV_AIO_OPTIONS_THREADS: >>> + return false; >>> + default: >>> + error_setg(errp, "Invalid AIO option"); >> >> Any reason for catching this case here but not in raw-posix? >> >> (Not that it really matters, though.) > > Nobody will forget raw-posix when adding a new AIO mode to win32, so I > didn't feel like the additional code was worth it there. But if we add a > new AIO mode to raw-posix, I'm pretty sure we will forget win32.
:-) Good point. Max
signature.asc
Description: OpenPGP digital signature