Markus Armbruster <arm...@redhat.com> writes:

> Eric Blake <ebl...@redhat.com> writes:
>
>> On 05/13/2014 10:02 AM, Markus Armbruster wrote:
>>> Cc: MORITA Kazutaka <morita.kazut...@lab.ntt.co.jp>
>>> Signed-off-by: Markus Armbruster <arm...@redhat.com>
>>> ---
>>>  block/sheepdog.c | 21 ++++++++++++---------
>>>  1 file changed, 12 insertions(+), 9 deletions(-)
>>> 
>>> @@ -1568,13 +1565,15 @@ static int sd_prealloc(const char *filename)
>>>           */
>>>          ret = bdrv_pread(bs, idx * SD_DATA_OBJ_SIZE, buf, 
>>> SD_DATA_OBJ_SIZE);
>>>          if (ret < 0) {
>>> -            goto out;
>>> +            goto out_setg;
>>>          }
>>>          ret = bdrv_pwrite(bs, idx * SD_DATA_OBJ_SIZE, buf, 
>>> SD_DATA_OBJ_SIZE);
>>>          if (ret < 0) {
>>> -            goto out;
>>> +            goto out_setg;
>>>          }
>>>      }
>>> +out_setg:
>>> +    error_setg_errno(errp, -ret, "Can't pre-allocate");
>>
>> This unconditionally sets errp even when the for loop completes
>> normally.  Are you sure you want this control flow?  Maybe you are
>> missing a 'goto out' prior to the 'out_setg' label?
>
> You're right, will fix, thanks!

I went over the whole series again looking for similar mistakes, and
found a few in PATCH 04 and 17.  Respin coming.

Reply via email to