Message ID | 1453747275-9468-2-git-send-email-mreitz@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 01/25/2016 11:41 AM, Max Reitz wrote: > Use client_close() if an error in nbd_co_client_start() occurs instead > of manually inlining parts of it. This fixes an assertion error on the > server side if nbd_negotiate() fails. > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > nbd/server.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com>
On Mon, Jan 25, 2016 at 07:41:08PM +0100, Max Reitz wrote: > Use client_close() if an error in nbd_co_client_start() occurs instead > of manually inlining parts of it. This fixes an assertion error on the > server side if nbd_negotiate() fails. > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > nbd/server.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/nbd/server.c b/nbd/server.c > index 2265cb0..5169b59 100644 > --- a/nbd/server.c > +++ b/nbd/server.c > @@ -1080,8 +1080,7 @@ static coroutine_fn void nbd_co_client_start(void *opaque) > nbd_export_get(exp); > } > if (nbd_negotiate(data)) { > - shutdown(client->sock, 2); > - client->close(client); > + client_close(client); > goto out; > } > qemu_co_mutex_init(&client->send_lock); The same as my fix last week :-) https://lists.gnu.org/archive/html/qemu-devel/2016-01/msg03409.html Regards, Daniel
Am 25.01.2016 um 19:41 hat Max Reitz geschrieben: > Use client_close() if an error in nbd_co_client_start() occurs instead > of manually inlining parts of it. This fixes an assertion error on the > server side if nbd_negotiate() fails. > > Signed-off-by: Max Reitz <mreitz@redhat.com> Paolo, if you can Ack this one, I can take the series through my tree. Kevin > nbd/server.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/nbd/server.c b/nbd/server.c > index 2265cb0..5169b59 100644 > --- a/nbd/server.c > +++ b/nbd/server.c > @@ -1080,8 +1080,7 @@ static coroutine_fn void nbd_co_client_start(void *opaque) > nbd_export_get(exp); > } > if (nbd_negotiate(data)) { > - shutdown(client->sock, 2); > - client->close(client); > + client_close(client); > goto out; > } > qemu_co_mutex_init(&client->send_lock); > -- > 2.7.0 >
On 26/01/2016 10:32, Kevin Wolf wrote: > Am 25.01.2016 um 19:41 hat Max Reitz geschrieben: >> > Use client_close() if an error in nbd_co_client_start() occurs instead >> > of manually inlining parts of it. This fixes an assertion error on the >> > server side if nbd_negotiate() fails. >> > >> > Signed-off-by: Max Reitz <mreitz@redhat.com> > Paolo, if you can Ack this one, I can take the series through my tree. Of course. I had the same patch queued from Daniel. Acked-by: Paolo Bonzini <pbonzini@redhat.com> Paolo
On 25.01.2016 23:05, Daniel P. Berrange wrote: > On Mon, Jan 25, 2016 at 07:41:08PM +0100, Max Reitz wrote: >> Use client_close() if an error in nbd_co_client_start() occurs instead >> of manually inlining parts of it. This fixes an assertion error on the >> server side if nbd_negotiate() fails. >> >> Signed-off-by: Max Reitz <mreitz@redhat.com> >> --- >> nbd/server.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/nbd/server.c b/nbd/server.c >> index 2265cb0..5169b59 100644 >> --- a/nbd/server.c >> +++ b/nbd/server.c >> @@ -1080,8 +1080,7 @@ static coroutine_fn void nbd_co_client_start(void *opaque) >> nbd_export_get(exp); >> } >> if (nbd_negotiate(data)) { >> - shutdown(client->sock, 2); >> - client->close(client); >> + client_close(client); >> goto out; >> } >> qemu_co_mutex_init(&client->send_lock); > > The same as my fix last week :-) > > https://lists.gnu.org/archive/html/qemu-devel/2016-01/msg03409.html Oops, sorry. I guess that at least shows that the fix is probably good. O:-) Max
diff --git a/nbd/server.c b/nbd/server.c index 2265cb0..5169b59 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -1080,8 +1080,7 @@ static coroutine_fn void nbd_co_client_start(void *opaque) nbd_export_get(exp); } if (nbd_negotiate(data)) { - shutdown(client->sock, 2); - client->close(client); + client_close(client); goto out; } qemu_co_mutex_init(&client->send_lock);
Use client_close() if an error in nbd_co_client_start() occurs instead of manually inlining parts of it. This fixes an assertion error on the server side if nbd_negotiate() fails. Signed-off-by: Max Reitz <mreitz@redhat.com> --- nbd/server.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)