qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-stable] [PATCH] block-commit: speed is an optiona


From: Fam Zheng
Subject: Re: [Qemu-devel] [Qemu-stable] [PATCH] block-commit: speed is an optional parameter
Date: Fri, 11 Apr 2014 09:09:07 +0800
User-agent: Mutt/1.5.23 (2014-03-12)

On Thu, 04/10 19:36, Max Reitz wrote:
> As speed is an optional parameter for the QMP block-commit command, it
> should be set to 0 if not given (as it is undefined if has_speed is
> false), that is, the speed should not be limited.
> 
> Signed-off-by: Max Reitz <address@hidden>
> Reviewed-by: Eric Blake <address@hidden>
> ---
> This patch was previously part of the "qemu-img: Implement commit like
> QMP" series, but as this is a general bugfix, it has been separated.
> ---

Reviewed-by: Fam Zheng <address@hidden>

The (generated) caller qmp_marshal_input_block_commit() actually leaves speed
uninitialized, so we're not safe without this patch:

int qmp_marshal_input_block_commit(Monitor *mon, const QDict *qdict, QObject 
**ret)
{
    Error *local_err = NULL;
    Error **errp = &local_err;
    QDict *args = (QDict *)qdict;
    QmpInputVisitor *mi;
    QapiDeallocVisitor *md;
    Visitor *v;
    char * device = NULL;
    bool has_base = false;
    char * base = NULL;
    char * top = NULL;
    bool has_speed = false;
    int64_t speed;

I'm wondering what the reason is to initialize pointers (like base and device)
while leaving int64_t values uninitilized in the code generator?

Fam

>  blockdev.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/blockdev.c b/blockdev.c
> index c3422a1..5dd01ea 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -1876,6 +1876,10 @@ void qmp_block_commit(const char *device,
>       */
>      BlockdevOnError on_error = BLOCKDEV_ON_ERROR_REPORT;
>  
> +    if (!has_speed) {
> +        speed = 0;
> +    }
> +
>      /* drain all i/o before commits */
>      bdrv_drain_all();
>  
> -- 
> 1.9.1
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]