Patchwork qemu-nbd: drop loop which can never loop

login
register
mail settings
Submitter Stefan Hajnoczi
Date Jan. 5, 2012, 1:16 p.m.
Message ID <1325769367-32267-1-git-send-email-stefanha@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/134469/
State New
Headers show

Comments

Stefan Hajnoczi - Jan. 5, 2012, 1:16 p.m.
For some reason nbd_client_thread() has a do..while loop which can never
loop, the condition is bogus because we would take a goto instead.  Drop
the loop.

Reported-by: Dr David Alan Gilbert <davidagilbert@uk.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
---
 qemu-nbd.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)
Paolo Bonzini - Jan. 5, 2012, 1:29 p.m.
On 01/05/2012 02:16 PM, Stefan Hajnoczi wrote:
> For some reason nbd_client_thread() has a do..while loop which can never
> loop, the condition is bogus because we would take a goto instead.  Drop
> the loop.
>
> Reported-by: Dr David Alan Gilbert<davidagilbert@uk.ibm.com>
> Signed-off-by: Stefan Hajnoczi<stefanha@linux.vnet.ibm.com>
> ---
>   qemu-nbd.c |   10 ++++------
>   1 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/qemu-nbd.c b/qemu-nbd.c
> index 155b058..eb61c33 100644
> --- a/qemu-nbd.c
> +++ b/qemu-nbd.c
> @@ -202,12 +202,10 @@ static void *nbd_client_thread(void *arg)
>       int ret;
>       pthread_t show_parts_thread;
>
> -    do {
> -        sock = unix_socket_outgoing(sockpath);
> -        if (sock == -1) {
> -            goto out;
> -        }
> -    } while (sock == -1);
> +    sock = unix_socket_outgoing(sockpath);
> +    if (sock == -1) {
> +        goto out;
> +    }
>
>       ret = nbd_receive_negotiate(sock, NULL,&nbdflags,
>                                   &size,&blocksize);

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>

It used to loop until commit f1ef555.  When I simplified the loop I 
failed to actually remove it.

I suppose it will get in through your trivial patches tree, won't it?

Paolo
Stefan Hajnoczi - Jan. 5, 2012, 2:22 p.m.
On Thu, Jan 5, 2012 at 1:29 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> I suppose it will get in through your trivial patches tree, won't it?

Yes
Stefan Hajnoczi - Jan. 6, 2012, 3:10 p.m.
On Thu, Jan 05, 2012 at 01:16:07PM +0000, Stefan Hajnoczi wrote:
> For some reason nbd_client_thread() has a do..while loop which can never
> loop, the condition is bogus because we would take a goto instead.  Drop
> the loop.
> 
> Reported-by: Dr David Alan Gilbert <davidagilbert@uk.ibm.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> ---
>  qemu-nbd.c |   10 ++++------
>  1 files changed, 4 insertions(+), 6 deletions(-)

Applied to the trivial patches -next tree:
https://github.com/stefanha/qemu/commits/trivial-patches-next

Stefan

Patch

diff --git a/qemu-nbd.c b/qemu-nbd.c
index 155b058..eb61c33 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -202,12 +202,10 @@  static void *nbd_client_thread(void *arg)
     int ret;
     pthread_t show_parts_thread;
 
-    do {
-        sock = unix_socket_outgoing(sockpath);
-        if (sock == -1) {
-            goto out;
-        }
-    } while (sock == -1);
+    sock = unix_socket_outgoing(sockpath);
+    if (sock == -1) {
+        goto out;
+    }
 
     ret = nbd_receive_negotiate(sock, NULL, &nbdflags,
                                 &size, &blocksize);