diff mbox

[v3,10/11] qemu-img: Set the ID of the block job in img_commit()

Message ID 9cb85b871a8d6b9e2b5f644730931445ef22994e.1467386530.git.berto@igalia.com (mailing list archive)
State New, archived
Headers show

Commit Message

Alberto Garcia July 1, 2016, 3:52 p.m. UTC
img_commit() creates a block job without an ID. This is no longer
allowed now that we require it to be unique and well-formed. We were
solving this by having a fallback in block_job_create(), but now that
we extended the API of commit_active_start() we can finally set an
explicit ID and revert that change.

Signed-off-by: Alberto Garcia <berto@igalia.com>
---
 blockjob.c | 6 ------
 qemu-img.c | 2 +-
 2 files changed, 1 insertion(+), 7 deletions(-)

Comments

Max Reitz July 2, 2016, 2:21 p.m. UTC | #1
On 01.07.2016 17:52, Alberto Garcia wrote:
> img_commit() creates a block job without an ID. This is no longer
> allowed now that we require it to be unique and well-formed. We were
> solving this by having a fallback in block_job_create(), but now that
> we extended the API of commit_active_start() we can finally set an
> explicit ID and revert that change.
> 
> Signed-off-by: Alberto Garcia <berto@igalia.com>
> ---
>  blockjob.c | 6 ------
>  qemu-img.c | 2 +-
>  2 files changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/blockjob.c b/blockjob.c
> index 511c0db..3b9cec7 100644
> --- a/blockjob.c
> +++ b/blockjob.c
> @@ -132,12 +132,6 @@ void *block_job_create(const char *job_id, const BlockJobDriver *driver,
>  
>      if (job_id == NULL) {
>          job_id = bdrv_get_device_name(bs);
> -        /* Assign a default ID if the BDS does not have a device
> -         * name. We'll get rid of this soon when we finish extending
> -         * the API of all commands that create block jobs. */
> -        if (job_id[0] == '\0') {
> -            job_id = "default_job";
> -        }

I think keeping an assertion here makes sense, though.

In any case:

Reviewed-by: Max Reitz <mreitz@redhat.com>

>      }
>  
>      if (!id_wellformed(job_id)) {
> diff --git a/qemu-img.c b/qemu-img.c
> index a78f598..521724c 100644
> --- a/qemu-img.c
> +++ b/qemu-img.c
> @@ -921,7 +921,7 @@ static int img_commit(int argc, char **argv)
>          .bs   = bs,
>      };
>  
> -    commit_active_start(NULL, bs, base_bs, 0, BLOCKDEV_ON_ERROR_REPORT,
> +    commit_active_start("commit", bs, base_bs, 0, BLOCKDEV_ON_ERROR_REPORT,
>                          common_block_job_cb, &cbi, &local_err);
>      if (local_err) {
>          goto done;
>
Alberto Garcia July 4, 2016, 12:43 p.m. UTC | #2
On Sat 02 Jul 2016 04:21:33 PM CEST, Max Reitz wrote:
> On 01.07.2016 17:52, Alberto Garcia wrote:
>> img_commit() creates a block job without an ID. This is no longer
>> allowed now that we require it to be unique and well-formed. We were
>> solving this by having a fallback in block_job_create(), but now that
>> we extended the API of commit_active_start() we can finally set an
>> explicit ID and revert that change.
>> 
>> Signed-off-by: Alberto Garcia <berto@igalia.com>
>> ---
>>  blockjob.c | 6 ------
>>  qemu-img.c | 2 +-
>>  2 files changed, 1 insertion(+), 7 deletions(-)
>> 
>> diff --git a/blockjob.c b/blockjob.c
>> index 511c0db..3b9cec7 100644
>> --- a/blockjob.c
>> +++ b/blockjob.c
>> @@ -132,12 +132,6 @@ void *block_job_create(const char *job_id, const BlockJobDriver *driver,
>>  
>>      if (job_id == NULL) {
>>          job_id = bdrv_get_device_name(bs);
>> -        /* Assign a default ID if the BDS does not have a device
>> -         * name. We'll get rid of this soon when we finish extending
>> -         * the API of all commands that create block jobs. */
>> -        if (job_id[0] == '\0') {
>> -            job_id = "default_job";
>> -        }
>
> I think keeping an assertion here makes sense, though.

I don't think so, this is an optional parameter. If the user fails to
provide an ID when making the QMP call and there's no device name, QEMU
should simply return an error.

Berto
diff mbox

Patch

diff --git a/blockjob.c b/blockjob.c
index 511c0db..3b9cec7 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -132,12 +132,6 @@  void *block_job_create(const char *job_id, const BlockJobDriver *driver,
 
     if (job_id == NULL) {
         job_id = bdrv_get_device_name(bs);
-        /* Assign a default ID if the BDS does not have a device
-         * name. We'll get rid of this soon when we finish extending
-         * the API of all commands that create block jobs. */
-        if (job_id[0] == '\0') {
-            job_id = "default_job";
-        }
     }
 
     if (!id_wellformed(job_id)) {
diff --git a/qemu-img.c b/qemu-img.c
index a78f598..521724c 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -921,7 +921,7 @@  static int img_commit(int argc, char **argv)
         .bs   = bs,
     };
 
-    commit_active_start(NULL, bs, base_bs, 0, BLOCKDEV_ON_ERROR_REPORT,
+    commit_active_start("commit", bs, base_bs, 0, BLOCKDEV_ON_ERROR_REPORT,
                         common_block_job_cb, &cbi, &local_err);
     if (local_err) {
         goto done;