diff mbox

[v2,2/4] block/qapi: always report full_backing_filename

Message ID 1449883528-26477-3-git-send-email-jsnow@redhat.com
State New
Headers show

Commit Message

John Snow Dec. 12, 2015, 1:25 a.m. UTC
Always report full_backing_filename, even if it's the same as
backing_filename. In the next patch, full_backing_filename may be
omitted if it cannot be generated instead of allowing e.g. drive_query
to abort if it runs into this scenario.

The presence or absence of the "full" field becomes useful information.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 block/qapi.c               | 7 ++++---
 tests/qemu-iotests/043.out | 2 ++
 2 files changed, 6 insertions(+), 3 deletions(-)

Comments

Max Reitz Dec. 14, 2015, 4:36 p.m. UTC | #1
On 12.12.2015 02:25, John Snow wrote:
> Always report full_backing_filename, even if it's the same as
> backing_filename. In the next patch, full_backing_filename may be
> omitted if it cannot be generated instead of allowing e.g. drive_query
> to abort if it runs into this scenario.
> 
> The presence or absence of the "full" field becomes useful information.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  block/qapi.c               | 7 ++++---
>  tests/qemu-iotests/043.out | 2 ++
>  2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/block/qapi.c b/block/qapi.c
> index 01569da..0e6b333 100644
> --- a/block/qapi.c
> +++ b/block/qapi.c
> @@ -251,9 +251,10 @@ void bdrv_query_image_info(BlockDriverState *bs,
>              return;
>          }
>  
> -        if (strcmp(backing_filename, backing_filename2) != 0) {
> -            info->full_backing_filename =
> -                        g_strdup(backing_filename2);
> +        /* Always report the full_backing_filename if present, even if it's the
> +         * same as backing_filename. That they are same is useful info. */
> +        if (backing_filename2) {

Is there a reason for this non-NULL check? Because it always is non-NULL
right now.

Max

> +            info->full_backing_filename = g_strdup(backing_filename2);
>              info->has_full_backing_filename = true;
>          }
>  
> diff --git a/tests/qemu-iotests/043.out b/tests/qemu-iotests/043.out
> index 33f8cc3..b37d2a3 100644
> --- a/tests/qemu-iotests/043.out
> +++ b/tests/qemu-iotests/043.out
> @@ -44,6 +44,7 @@ cluster_size: 65536
>          "filename": "TEST_DIR/t.IMGFMT",
>          "cluster-size": 65536,
>          "format": "IMGFMT",
> +        "full-backing-filename": "TEST_DIR/t.IMGFMT.2.base",
>          "backing-filename": "TEST_DIR/t.IMGFMT.2.base",
>          "dirty-flag": false
>      },
> @@ -52,6 +53,7 @@ cluster_size: 65536
>          "filename": "TEST_DIR/t.IMGFMT.2.base",
>          "cluster-size": 65536,
>          "format": "IMGFMT",
> +        "full-backing-filename": "TEST_DIR/t.IMGFMT.1.base",
>          "backing-filename": "TEST_DIR/t.IMGFMT.1.base",
>          "dirty-flag": false
>      },
>
John Snow Dec. 14, 2015, 4:38 p.m. UTC | #2
On 12/14/2015 11:36 AM, Max Reitz wrote:
> On 12.12.2015 02:25, John Snow wrote:
>> Always report full_backing_filename, even if it's the same as
>> backing_filename. In the next patch, full_backing_filename may be
>> omitted if it cannot be generated instead of allowing e.g. drive_query
>> to abort if it runs into this scenario.
>>
>> The presence or absence of the "full" field becomes useful information.
>>
>> Signed-off-by: John Snow <jsnow@redhat.com>
>> ---
>>  block/qapi.c               | 7 ++++---
>>  tests/qemu-iotests/043.out | 2 ++
>>  2 files changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/block/qapi.c b/block/qapi.c
>> index 01569da..0e6b333 100644
>> --- a/block/qapi.c
>> +++ b/block/qapi.c
>> @@ -251,9 +251,10 @@ void bdrv_query_image_info(BlockDriverState *bs,
>>              return;
>>          }
>>  
>> -        if (strcmp(backing_filename, backing_filename2) != 0) {
>> -            info->full_backing_filename =
>> -                        g_strdup(backing_filename2);
>> +        /* Always report the full_backing_filename if present, even if it's the
>> +         * same as backing_filename. That they are same is useful info. */
>> +        if (backing_filename2) {
> 
> Is there a reason for this non-NULL check? Because it always is non-NULL
> right now.
> 
> Max
> 

No, I was just being convenient with re-ordering patches. It can be NULL
by the end of the set. I'll clean it if there's other work to do.

>> +            info->full_backing_filename = g_strdup(backing_filename2);
>>              info->has_full_backing_filename = true;
>>          }
>>  
>> diff --git a/tests/qemu-iotests/043.out b/tests/qemu-iotests/043.out
>> index 33f8cc3..b37d2a3 100644
>> --- a/tests/qemu-iotests/043.out
>> +++ b/tests/qemu-iotests/043.out
>> @@ -44,6 +44,7 @@ cluster_size: 65536
>>          "filename": "TEST_DIR/t.IMGFMT",
>>          "cluster-size": 65536,
>>          "format": "IMGFMT",
>> +        "full-backing-filename": "TEST_DIR/t.IMGFMT.2.base",
>>          "backing-filename": "TEST_DIR/t.IMGFMT.2.base",
>>          "dirty-flag": false
>>      },
>> @@ -52,6 +53,7 @@ cluster_size: 65536
>>          "filename": "TEST_DIR/t.IMGFMT.2.base",
>>          "cluster-size": 65536,
>>          "format": "IMGFMT",
>> +        "full-backing-filename": "TEST_DIR/t.IMGFMT.1.base",
>>          "backing-filename": "TEST_DIR/t.IMGFMT.1.base",
>>          "dirty-flag": false
>>      },
>>
> 
>
Max Reitz Dec. 14, 2015, 4:39 p.m. UTC | #3
On 14.12.2015 17:38, John Snow wrote:
> 
> 
> On 12/14/2015 11:36 AM, Max Reitz wrote:
>> On 12.12.2015 02:25, John Snow wrote:
>>> Always report full_backing_filename, even if it's the same as
>>> backing_filename. In the next patch, full_backing_filename may be
>>> omitted if it cannot be generated instead of allowing e.g. drive_query
>>> to abort if it runs into this scenario.
>>>
>>> The presence or absence of the "full" field becomes useful information.
>>>
>>> Signed-off-by: John Snow <jsnow@redhat.com>
>>> ---
>>>  block/qapi.c               | 7 ++++---
>>>  tests/qemu-iotests/043.out | 2 ++
>>>  2 files changed, 6 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/block/qapi.c b/block/qapi.c
>>> index 01569da..0e6b333 100644
>>> --- a/block/qapi.c
>>> +++ b/block/qapi.c
>>> @@ -251,9 +251,10 @@ void bdrv_query_image_info(BlockDriverState *bs,
>>>              return;
>>>          }
>>>  
>>> -        if (strcmp(backing_filename, backing_filename2) != 0) {
>>> -            info->full_backing_filename =
>>> -                        g_strdup(backing_filename2);
>>> +        /* Always report the full_backing_filename if present, even if it's the
>>> +         * same as backing_filename. That they are same is useful info. */
>>> +        if (backing_filename2) {
>>
>> Is there a reason for this non-NULL check? Because it always is non-NULL
>> right now.
>>
>> Max
>>
> 
> No, I was just being convenient with re-ordering patches. It can be NULL
> by the end of the set. I'll clean it if there's other work to do.

Oh, OK, that's fine then.

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

> 
>>> +            info->full_backing_filename = g_strdup(backing_filename2);
>>>              info->has_full_backing_filename = true;
>>>          }
>>>  
>>> diff --git a/tests/qemu-iotests/043.out b/tests/qemu-iotests/043.out
>>> index 33f8cc3..b37d2a3 100644
>>> --- a/tests/qemu-iotests/043.out
>>> +++ b/tests/qemu-iotests/043.out
>>> @@ -44,6 +44,7 @@ cluster_size: 65536
>>>          "filename": "TEST_DIR/t.IMGFMT",
>>>          "cluster-size": 65536,
>>>          "format": "IMGFMT",
>>> +        "full-backing-filename": "TEST_DIR/t.IMGFMT.2.base",
>>>          "backing-filename": "TEST_DIR/t.IMGFMT.2.base",
>>>          "dirty-flag": false
>>>      },
>>> @@ -52,6 +53,7 @@ cluster_size: 65536
>>>          "filename": "TEST_DIR/t.IMGFMT.2.base",
>>>          "cluster-size": 65536,
>>>          "format": "IMGFMT",
>>> +        "full-backing-filename": "TEST_DIR/t.IMGFMT.1.base",
>>>          "backing-filename": "TEST_DIR/t.IMGFMT.1.base",
>>>          "dirty-flag": false
>>>      },
>>>
>>
>>
>
diff mbox

Patch

diff --git a/block/qapi.c b/block/qapi.c
index 01569da..0e6b333 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -251,9 +251,10 @@  void bdrv_query_image_info(BlockDriverState *bs,
             return;
         }
 
-        if (strcmp(backing_filename, backing_filename2) != 0) {
-            info->full_backing_filename =
-                        g_strdup(backing_filename2);
+        /* Always report the full_backing_filename if present, even if it's the
+         * same as backing_filename. That they are same is useful info. */
+        if (backing_filename2) {
+            info->full_backing_filename = g_strdup(backing_filename2);
             info->has_full_backing_filename = true;
         }
 
diff --git a/tests/qemu-iotests/043.out b/tests/qemu-iotests/043.out
index 33f8cc3..b37d2a3 100644
--- a/tests/qemu-iotests/043.out
+++ b/tests/qemu-iotests/043.out
@@ -44,6 +44,7 @@  cluster_size: 65536
         "filename": "TEST_DIR/t.IMGFMT",
         "cluster-size": 65536,
         "format": "IMGFMT",
+        "full-backing-filename": "TEST_DIR/t.IMGFMT.2.base",
         "backing-filename": "TEST_DIR/t.IMGFMT.2.base",
         "dirty-flag": false
     },
@@ -52,6 +53,7 @@  cluster_size: 65536
         "filename": "TEST_DIR/t.IMGFMT.2.base",
         "cluster-size": 65536,
         "format": "IMGFMT",
+        "full-backing-filename": "TEST_DIR/t.IMGFMT.1.base",
         "backing-filename": "TEST_DIR/t.IMGFMT.1.base",
         "dirty-flag": false
     },