All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue
@ 2014-06-23 15:28 Chen Gang
  2014-06-24  2:25 ` Fam Zheng
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Chen Gang @ 2014-06-23 15:28 UTC (permalink / raw)
  To: Kevin Wolf, stefanha, Michael Tokarev, mreitz, eblake, famz
  Cc: qemu-trivial, qemu-devel

When failure occurs, 'ret' need be set, or may return 0 to indicate success.
And error_propagate() also need be called only one time within a function.

It is abnormal to prevent bdrv_append_temp_snapshot() return value but still
set errp when error occurs -- although it contents return value internally.

So let bdrv_append_temp_snapshot() internal return value outside, and let
all things normal, then fix the issue too.


Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
---
 block.c               | 7 ++++---
 include/block/block.h | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/block.c b/block.c
index 74af8d7..5e4fb60 100644
--- a/block.c
+++ b/block.c
@@ -1240,7 +1240,7 @@ done:
     return ret;
 }
 
-void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
+int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
 {
     /* TODO: extra byte is a hack to ensure MAX_PATH space on Windows. */
     char *tmp_filename = g_malloc0(PATH_MAX + 1);
@@ -1258,6 +1258,7 @@ void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
     /* Get the required size from the image */
     total_size = bdrv_getlength(bs);
     if (total_size < 0) {
+        ret = total_size;
         error_setg_errno(errp, -total_size, "Could not get image size");
         goto out;
     }
@@ -1304,6 +1305,7 @@ void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
 
 out:
     g_free(tmp_filename);
+    return ret;
 }
 
 static QDict *parse_json_filename(const char *filename, Error **errp)
@@ -1495,9 +1497,8 @@ int bdrv_open(BlockDriverState **pbs, const char *filename,
     /* For snapshot=on, create a temporary qcow2 overlay. bs points to the
      * temporary snapshot afterwards. */
     if (snapshot_flags) {
-        bdrv_append_temp_snapshot(bs, snapshot_flags, &local_err);
+        ret = bdrv_append_temp_snapshot(bs, snapshot_flags, &local_err);
         if (local_err) {
-            error_propagate(errp, local_err);
             goto close_and_fail;
         }
     }
diff --git a/include/block/block.h b/include/block/block.h
index f15b99b..7b3381c 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -217,7 +217,7 @@ int bdrv_open_image(BlockDriverState **pbs, const char *filename,
                     bool allow_none, Error **errp);
 void bdrv_set_backing_hd(BlockDriverState *bs, BlockDriverState *backing_hd);
 int bdrv_open_backing_file(BlockDriverState *bs, QDict *options, Error **errp);
-void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp);
+int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp);
 int bdrv_open(BlockDriverState **pbs, const char *filename,
               const char *reference, QDict *options, int flags,
               BlockDriver *drv, Error **errp);
-- 
1.7.11.7

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue
  2014-06-23 15:28 [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue Chen Gang
@ 2014-06-24  2:25 ` Fam Zheng
  2014-06-24  2:32   ` Chen Gang
  2014-06-24 10:46 ` Kevin Wolf
  2014-06-27 17:21 ` Kevin Wolf
  2 siblings, 1 reply; 9+ messages in thread
From: Fam Zheng @ 2014-06-24  2:25 UTC (permalink / raw)
  To: Chen Gang
  Cc: Kevin Wolf, qemu-trivial, Michael Tokarev, qemu-devel, mreitz, stefanha

On Mon, 06/23 23:28, Chen Gang wrote:
> When failure occurs, 'ret' need be set, or may return 0 to indicate success.

s/need/needs/

> And error_propagate() also need be called only one time within a function.

s/need/needs/

> 
> It is abnormal to prevent bdrv_append_temp_snapshot() return value but still
> set errp when error occurs -- although it contents return value internally.

s/contents/has/

> 
> So let bdrv_append_temp_snapshot() internal return value outside, and let
> all things normal, then fix the issue too.
> 
> 
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> ---
>  block.c               | 7 ++++---
>  include/block/block.h | 2 +-
>  2 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/block.c b/block.c
> index 74af8d7..5e4fb60 100644
> --- a/block.c
> +++ b/block.c
> @@ -1240,7 +1240,7 @@ done:
>      return ret;
>  }
>  
> -void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
> +int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
>  {
>      /* TODO: extra byte is a hack to ensure MAX_PATH space on Windows. */
>      char *tmp_filename = g_malloc0(PATH_MAX + 1);
> @@ -1258,6 +1258,7 @@ void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
>      /* Get the required size from the image */
>      total_size = bdrv_getlength(bs);
>      if (total_size < 0) {
> +        ret = total_size;
>          error_setg_errno(errp, -total_size, "Could not get image size");
>          goto out;
>      }
> @@ -1304,6 +1305,7 @@ void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
>  
>  out:
>      g_free(tmp_filename);
> +    return ret;
>  }
>  
>  static QDict *parse_json_filename(const char *filename, Error **errp)
> @@ -1495,9 +1497,8 @@ int bdrv_open(BlockDriverState **pbs, const char *filename,
>      /* For snapshot=on, create a temporary qcow2 overlay. bs points to the
>       * temporary snapshot afterwards. */
>      if (snapshot_flags) {
> -        bdrv_append_temp_snapshot(bs, snapshot_flags, &local_err);
> +        ret = bdrv_append_temp_snapshot(bs, snapshot_flags, &local_err);
>          if (local_err) {
> -            error_propagate(errp, local_err);
>              goto close_and_fail;
>          }
>      }
> diff --git a/include/block/block.h b/include/block/block.h
> index f15b99b..7b3381c 100644
> --- a/include/block/block.h
> +++ b/include/block/block.h
> @@ -217,7 +217,7 @@ int bdrv_open_image(BlockDriverState **pbs, const char *filename,
>                      bool allow_none, Error **errp);
>  void bdrv_set_backing_hd(BlockDriverState *bs, BlockDriverState *backing_hd);
>  int bdrv_open_backing_file(BlockDriverState *bs, QDict *options, Error **errp);
> -void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp);
> +int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp);

Not used outside block.c, but pre-existing.

Reviewed-by: Fam Zheng <famz@redhat.com>

Fam

>  int bdrv_open(BlockDriverState **pbs, const char *filename,
>                const char *reference, QDict *options, int flags,
>                BlockDriver *drv, Error **errp);
> -- 
> 1.7.11.7

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue
  2014-06-24  2:25 ` Fam Zheng
@ 2014-06-24  2:32   ` Chen Gang
  0 siblings, 0 replies; 9+ messages in thread
From: Chen Gang @ 2014-06-24  2:32 UTC (permalink / raw)
  To: Fam Zheng
  Cc: Kevin Wolf, qemu-trivial, Michael Tokarev, qemu-devel, mreitz, stefanha


On 06/24/2014 10:25 AM, Fam Zheng wrote:
> On Mon, 06/23 23:28, Chen Gang wrote:
>> When failure occurs, 'ret' need be set, or may return 0 to indicate success.
> 
> s/need/needs/
> 
>> And error_propagate() also need be called only one time within a function.
> 
> s/need/needs/
> 

For a grammar in my learning, in this situation, 'need' is not a verb,
"be set" and "be called" are the verb used with passive mode.

>>
>> It is abnormal to prevent bdrv_append_temp_snapshot() return value but still
>> set errp when error occurs -- although it contents return value internally.
> 
> s/contents/has/
> 

OK, thanks, and excuse me for my poor English. If necessary I shall send
patch v2 for it.

>>
>> So let bdrv_append_temp_snapshot() internal return value outside, and let
>> all things normal, then fix the issue too.
>>
>>
>> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
>> ---
>>  block.c               | 7 ++++---
>>  include/block/block.h | 2 +-
>>  2 files changed, 5 insertions(+), 4 deletions(-)
>>
>> diff --git a/block.c b/block.c
>> index 74af8d7..5e4fb60 100644
>> --- a/block.c
>> +++ b/block.c
>> @@ -1240,7 +1240,7 @@ done:
>>      return ret;
>>  }
>>  
>> -void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
>> +int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
>>  {
>>      /* TODO: extra byte is a hack to ensure MAX_PATH space on Windows. */
>>      char *tmp_filename = g_malloc0(PATH_MAX + 1);
>> @@ -1258,6 +1258,7 @@ void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
>>      /* Get the required size from the image */
>>      total_size = bdrv_getlength(bs);
>>      if (total_size < 0) {
>> +        ret = total_size;
>>          error_setg_errno(errp, -total_size, "Could not get image size");
>>          goto out;
>>      }
>> @@ -1304,6 +1305,7 @@ void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp)
>>  
>>  out:
>>      g_free(tmp_filename);
>> +    return ret;
>>  }
>>  
>>  static QDict *parse_json_filename(const char *filename, Error **errp)
>> @@ -1495,9 +1497,8 @@ int bdrv_open(BlockDriverState **pbs, const char *filename,
>>      /* For snapshot=on, create a temporary qcow2 overlay. bs points to the
>>       * temporary snapshot afterwards. */
>>      if (snapshot_flags) {
>> -        bdrv_append_temp_snapshot(bs, snapshot_flags, &local_err);
>> +        ret = bdrv_append_temp_snapshot(bs, snapshot_flags, &local_err);
>>          if (local_err) {
>> -            error_propagate(errp, local_err);
>>              goto close_and_fail;
>>          }
>>      }
>> diff --git a/include/block/block.h b/include/block/block.h
>> index f15b99b..7b3381c 100644
>> --- a/include/block/block.h
>> +++ b/include/block/block.h
>> @@ -217,7 +217,7 @@ int bdrv_open_image(BlockDriverState **pbs, const char *filename,
>>                      bool allow_none, Error **errp);
>>  void bdrv_set_backing_hd(BlockDriverState *bs, BlockDriverState *backing_hd);
>>  int bdrv_open_backing_file(BlockDriverState *bs, QDict *options, Error **errp);
>> -void bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp);
>> +int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp);
> 
> Not used outside block.c, but pre-existing.
> 

Yeah, originally, I considered about it, and finally still remained it
as pre-existing.

> Reviewed-by: Fam Zheng <famz@redhat.com>
> 
Thank you for your work.

Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue
  2014-06-23 15:28 [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue Chen Gang
  2014-06-24  2:25 ` Fam Zheng
@ 2014-06-24 10:46 ` Kevin Wolf
  2014-06-24 11:01   ` Markus Armbruster
  2014-06-27 17:21 ` Kevin Wolf
  2 siblings, 1 reply; 9+ messages in thread
From: Kevin Wolf @ 2014-06-24 10:46 UTC (permalink / raw)
  To: Chen Gang
  Cc: famz, qemu-trivial, Michael Tokarev, qemu-devel, mreitz, stefanha

Am 23.06.2014 um 17:28 hat Chen Gang geschrieben:
> When failure occurs, 'ret' need be set, or may return 0 to indicate success.
> And error_propagate() also need be called only one time within a function.
> 
> It is abnormal to prevent bdrv_append_temp_snapshot() return value but still
> set errp when error occurs -- although it contents return value internally.
> 
> So let bdrv_append_temp_snapshot() internal return value outside, and let
> all things normal, then fix the issue too.
> 
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>

What does this fix?

Having both a return value and an Error* object is duplication and
only a sign that a function hasn't been fully converted to the Error
framework yet. We shouldn't introduce new instances of this without a
very good reason.

Kevin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue
  2014-06-24 10:46 ` Kevin Wolf
@ 2014-06-24 11:01   ` Markus Armbruster
  2014-06-24 16:00     ` [Qemu-devel] [Qemu-trivial] " Michael Tokarev
  2014-06-27 11:50     ` [Qemu-devel] " Stefan Hajnoczi
  0 siblings, 2 replies; 9+ messages in thread
From: Markus Armbruster @ 2014-06-24 11:01 UTC (permalink / raw)
  To: Kevin Wolf
  Cc: famz, Chen Gang, qemu-trivial, Michael Tokarev, qemu-devel,
	mreitz, stefanha

Kevin Wolf <kwolf@redhat.com> writes:

> Am 23.06.2014 um 17:28 hat Chen Gang geschrieben:
>> When failure occurs, 'ret' need be set, or may return 0 to indicate success.
>> And error_propagate() also need be called only one time within a function.
>> 
>> It is abnormal to prevent bdrv_append_temp_snapshot() return value but still
>> set errp when error occurs -- although it contents return value internally.
>> 
>> So let bdrv_append_temp_snapshot() internal return value outside, and let
>> all things normal, then fix the issue too.
>> 
>> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
>
> What does this fix?

It fixes the return value of bdrv_open() when
bdrv_append_temp_snapshot() fails.  Before this patch, it returns a
positive value, which is wrong.  After the patch, it returns the
negative error code bdrv_append_temp_snapshot() now returns.

> Having both a return value and an Error* object is duplication and
> only a sign that a function hasn't been fully converted to the Error
> framework yet. We shouldn't introduce new instances of this without a
> very good reason.

Maybe.  But I very much prefer

        ret = foo(arg, errp);
        if (ret < 0) {
            return ret;
        }

over

        Error *local_err = NULL;

        foo(arg, &local_err);
        if (local_err) {
            error_propagate(errp, local_err);
            return;
        }

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [Qemu-trivial] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue
  2014-06-24 11:01   ` Markus Armbruster
@ 2014-06-24 16:00     ` Michael Tokarev
  2014-06-25 22:13       ` Chen Gang
  2014-06-27 11:50     ` [Qemu-devel] " Stefan Hajnoczi
  1 sibling, 1 reply; 9+ messages in thread
From: Michael Tokarev @ 2014-06-24 16:00 UTC (permalink / raw)
  To: Markus Armbruster, Kevin Wolf
  Cc: famz, Chen Gang, qemu-trivial, qemu-devel, mreitz, stefanha

24.06.2014 15:01, Markus Armbruster wrote:
> Kevin Wolf <kwolf@redhat.com> writes:
> 
>> Am 23.06.2014 um 17:28 hat Chen Gang geschrieben:
>>> When failure occurs, 'ret' need be set, or may return 0 to indicate success.
>>> And error_propagate() also need be called only one time within a function.
>>>
>>> It is abnormal to prevent bdrv_append_temp_snapshot() return value but still
>>> set errp when error occurs -- although it contents return value internally.
>>>
>>> So let bdrv_append_temp_snapshot() internal return value outside, and let
>>> all things normal, then fix the issue too.
>>>
>>> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
>>
>> What does this fix?
> 
> It fixes the return value of bdrv_open() when
> bdrv_append_temp_snapshot() fails.  Before this patch, it returns a
> positive value, which is wrong.  After the patch, it returns the
> negative error code bdrv_append_temp_snapshot() now returns.

So, what should be done there?   Kevin, maybe you should pick this up
instead of going -trivial route?

>> Having both a return value and an Error* object is duplication and
>> only a sign that a function hasn't been fully converted to the Error
>> framework yet. We shouldn't introduce new instances of this without a
>> very good reason.
> 
> Maybe.  But I very much prefer
> 
>         ret = foo(arg, errp);
>         if (ret < 0) {
>             return ret;
>         }
> 
> over
> 
>         Error *local_err = NULL;
> 
>         foo(arg, &local_err);
>         if (local_err) {
>             error_propagate(errp, local_err);
>             return;
>         }

Yes, this new error propagation is a bit ugly, I dislike it too.

Thanks,

/mjt

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [Qemu-trivial] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue
  2014-06-24 16:00     ` [Qemu-devel] [Qemu-trivial] " Michael Tokarev
@ 2014-06-25 22:13       ` Chen Gang
  0 siblings, 0 replies; 9+ messages in thread
From: Chen Gang @ 2014-06-25 22:13 UTC (permalink / raw)
  To: Michael Tokarev
  Cc: Kevin Wolf, qemu-devel, famz, qemu-trivial, Markus Armbruster,
	mreitz, stefanha


Thank you for all of your work, if necessary to send patch v3 for it
(may change the comments), please let me know.

Thanks.

On 06/25/2014 12:00 AM, Michael Tokarev wrote:
> 24.06.2014 15:01, Markus Armbruster wrote:
>> Kevin Wolf <kwolf@redhat.com> writes:
>>
>>> Am 23.06.2014 um 17:28 hat Chen Gang geschrieben:
>>>> When failure occurs, 'ret' need be set, or may return 0 to indicate success.
>>>> And error_propagate() also need be called only one time within a function.
>>>>
>>>> It is abnormal to prevent bdrv_append_temp_snapshot() return value but still
>>>> set errp when error occurs -- although it contents return value internally.
>>>>
>>>> So let bdrv_append_temp_snapshot() internal return value outside, and let
>>>> all things normal, then fix the issue too.
>>>>
>>>> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
>>>
>>> What does this fix?
>>
>> It fixes the return value of bdrv_open() when
>> bdrv_append_temp_snapshot() fails.  Before this patch, it returns a
>> positive value, which is wrong.  After the patch, it returns the
>> negative error code bdrv_append_temp_snapshot() now returns.
> 
> So, what should be done there?   Kevin, maybe you should pick this up
> instead of going -trivial route?
> 
>>> Having both a return value and an Error* object is duplication and
>>> only a sign that a function hasn't been fully converted to the Error
>>> framework yet. We shouldn't introduce new instances of this without a
>>> very good reason.
>>
>> Maybe.  But I very much prefer
>>
>>         ret = foo(arg, errp);
>>         if (ret < 0) {
>>             return ret;
>>         }
>>
>> over
>>
>>         Error *local_err = NULL;
>>
>>         foo(arg, &local_err);
>>         if (local_err) {
>>             error_propagate(errp, local_err);
>>             return;
>>         }
> 
> Yes, this new error propagation is a bit ugly, I dislike it too.
> 
> Thanks,
> 
> /mjt
> 


-- 
Chen Gang

Open share and attitude like air water and life which God blessed

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue
  2014-06-24 11:01   ` Markus Armbruster
  2014-06-24 16:00     ` [Qemu-devel] [Qemu-trivial] " Michael Tokarev
@ 2014-06-27 11:50     ` Stefan Hajnoczi
  1 sibling, 0 replies; 9+ messages in thread
From: Stefan Hajnoczi @ 2014-06-27 11:50 UTC (permalink / raw)
  To: Markus Armbruster
  Cc: Kevin Wolf, famz, Chen Gang, qemu-trivial, Michael Tokarev,
	qemu-devel, mreitz

[-- Attachment #1: Type: text/plain, Size: 1105 bytes --]

On Tue, Jun 24, 2014 at 01:01:52PM +0200, Markus Armbruster wrote:
> Kevin Wolf <kwolf@redhat.com> writes:
> 
> > Am 23.06.2014 um 17:28 hat Chen Gang geschrieben:
> >> When failure occurs, 'ret' need be set, or may return 0 to indicate success.
> >> And error_propagate() also need be called only one time within a function.
> >> 
> >> It is abnormal to prevent bdrv_append_temp_snapshot() return value but still
> >> set errp when error occurs -- although it contents return value internally.
> >> 
> >> So let bdrv_append_temp_snapshot() internal return value outside, and let
> >> all things normal, then fix the issue too.
> >> 
> >> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> >
> > What does this fix?
> 
> It fixes the return value of bdrv_open() when
> bdrv_append_temp_snapshot() fails.  Before this patch, it returns a
> positive value, which is wrong.  After the patch, it returns the
> negative error code bdrv_append_temp_snapshot() now returns.

Exactly.  I asked for the -errno return because otherwise bdrv_open()
would have no accurate errno.

Stefan

[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue
  2014-06-23 15:28 [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue Chen Gang
  2014-06-24  2:25 ` Fam Zheng
  2014-06-24 10:46 ` Kevin Wolf
@ 2014-06-27 17:21 ` Kevin Wolf
  2 siblings, 0 replies; 9+ messages in thread
From: Kevin Wolf @ 2014-06-27 17:21 UTC (permalink / raw)
  To: Chen Gang
  Cc: famz, qemu-trivial, Michael Tokarev, qemu-devel, mreitz, stefanha

Am 23.06.2014 um 17:28 hat Chen Gang geschrieben:
> When failure occurs, 'ret' need be set, or may return 0 to indicate success.
> And error_propagate() also need be called only one time within a function.
> 
> It is abnormal to prevent bdrv_append_temp_snapshot() return value but still
> set errp when error occurs -- although it contents return value internally.
> 
> So let bdrv_append_temp_snapshot() internal return value outside, and let
> all things normal, then fix the issue too.
> 
> 
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>

Thanks, applied to the block branch.

Kevin

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-06-27 18:29 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-23 15:28 [Qemu-devel] [PATCH trivial v2] block.c: Add return value for bdrv_append_temp_snapshot() to avoid incorrect failure processing issue Chen Gang
2014-06-24  2:25 ` Fam Zheng
2014-06-24  2:32   ` Chen Gang
2014-06-24 10:46 ` Kevin Wolf
2014-06-24 11:01   ` Markus Armbruster
2014-06-24 16:00     ` [Qemu-devel] [Qemu-trivial] " Michael Tokarev
2014-06-25 22:13       ` Chen Gang
2014-06-27 11:50     ` [Qemu-devel] " Stefan Hajnoczi
2014-06-27 17:21 ` Kevin Wolf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.