[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 23/38] blockdev: Pull out blockdev option ext
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH v3 23/38] blockdev: Pull out blockdev option extraction |
Date: |
Tue, 9 Jun 2015 08:37:15 +0800 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Wed, 06/03 21:44, Max Reitz wrote:
> Extract some of the blockdev option extraction code from blockdev_init()
> into its own function. This simplifies blockdev_init() and will allow
> reusing the code in a different function added in a follow-up patch.
>
> Signed-off-by: Max Reitz <address@hidden>
> Reviewed-by: Eric Blake <address@hidden>
> ---
> blockdev.c | 201
> +++++++++++++++++++++++++++++++++----------------------------
> 1 file changed, 108 insertions(+), 93 deletions(-)
>
> diff --git a/blockdev.c b/blockdev.c
> index 8c91532..8d672ac 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -341,24 +341,123 @@ static bool check_throttle_config(ThrottleConfig *cfg,
> Error **errp)
>
> typedef enum { MEDIA_DISK, MEDIA_CDROM } DriveMediaType;
>
> +static void extract_common_blockdev_options(QemuOpts *opts, int *bdrv_flags,
> + ThrottleConfig *throttle_cfg, BlockdevDetectZeroesOptions *detect_zeroes,
> + Error **errp)
> +{
> + const char *discard, *aio;
This breaks build without CONFIG_LINUX_AIO:
/home/fam/qemu/blockdev.c: In function ‘extract_common_blockdev_options’:
/home/fam/qemu/blockdev.c:348:27: error: unused variable ‘aio’
[-Werror=unused-variable]
const char *discard, *aio;
^
cc1: all warnings being treated as errors
> + Error *local_error = NULL;
> +
> + if (!qemu_opt_get_bool(opts, "read-only", false)) {
> + *bdrv_flags |= BDRV_O_RDWR;
> + }
> + if (qemu_opt_get_bool(opts, "copy-on-read", false)) {
> + *bdrv_flags |= BDRV_O_COPY_ON_READ;
> + }
> +
> + if ((discard = qemu_opt_get(opts, "discard")) != NULL) {
> + if (bdrv_parse_discard_flags(discard, bdrv_flags) != 0) {
> + error_setg(errp, "Invalid discard option");
> + return;
> + }
> + }
> +
> + if (qemu_opt_get_bool(opts, "cache.writeback", true)) {
> + *bdrv_flags |= BDRV_O_CACHE_WB;
> + }
> + if (qemu_opt_get_bool(opts, "cache.direct", false)) {
> + *bdrv_flags |= BDRV_O_NOCACHE;
> + }
> + if (qemu_opt_get_bool(opts, "cache.no-flush", false)) {
> + *bdrv_flags |= BDRV_O_NO_FLUSH;
> + }
> +
> +#ifdef CONFIG_LINUX_AIO
> + if ((aio = qemu_opt_get(opts, "aio")) != NULL) {
> + if (!strcmp(aio, "native")) {
> + *bdrv_flags |= BDRV_O_NATIVE_AIO;
> + } else if (!strcmp(aio, "threads")) {
> + /* this is the default */
> + } else {
> + error_setg(errp, "invalid aio option");
> + return;
> + }
> + }
> +#endif
[snip]
Fam
- [Qemu-devel] [PATCH v3 18/38] block: Fail requests to empty BlockBackend, (continued)
- [Qemu-devel] [PATCH v3 18/38] block: Fail requests to empty BlockBackend, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 20/38] block: Add blk_insert_bs(), Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 19/38] block: Prepare remaining BB functions for NULL BDS, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 21/38] block: Prepare for NULL BDS, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 22/38] blockdev: Do not create BDS for empty drive, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 24/38] blockdev: Allow more options for BB-less BDS tree, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 23/38] blockdev: Pull out blockdev option extraction, Max Reitz, 2015/06/03
- Re: [Qemu-devel] [PATCH v3 23/38] blockdev: Pull out blockdev option extraction,
Fam Zheng <=
- [Qemu-devel] [PATCH v3 26/38] blockdev: Add blockdev-open-tray, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 25/38] block: Add blk_remove_bs(), Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 28/38] blockdev: Add blockdev-remove-medium, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 29/38] blockdev: Add blockdev-insert-medium, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 27/38] blockdev: Add blockdev-close-tray, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 30/38] blockdev: Implement eject with basic operations, Max Reitz, 2015/06/03
- [Qemu-devel] [PATCH v3 31/38] blockdev: Implement change with basic operations, Max Reitz, 2015/06/03