[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 09/13] nbd: don't change socket block during neg
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 09/13] nbd: don't change socket block during negotiate |
Date: |
Fri, 29 Nov 2013 16:22:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 29/11/2013 15:58, Marc-André Lureau ha scritto:
> From: Marc-André Lureau <address@hidden>
>
> The caller might handle non-blocking using coroutine. Leave the choice
> to the caller to use a blocking or non-blocking negotiate.
>
> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
> nbd.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/nbd.c b/nbd.c
> index f847940..3af9d17 100644
> --- a/nbd.c
> +++ b/nbd.c
> @@ -443,7 +443,6 @@ int nbd_receive_negotiate(int csock, const char *name,
> uint32_t *flags,
>
> TRACE("Receiving negotiation.");
>
> - qemu_set_block(csock);
> rc = -EINVAL;
>
> if (read_sync(csock, buf, 8) != 8) {
>
If you remove this here, you need to remove also the matching
socket_set_nonblock,
Also, there are two callers:
- nbd.c: you can add nbd_socket_block/nonblock around
nbd_receive_negotiate in nbd_open.
- qemu-nbd.c: here the socket can remain in blocking mode. In fact it
is blocking before the call to nbd_receive_negotiate, because
unix_connect_opts is missing a call to qemu_set_block (bug!). I suggest
that you add the call to qemu_set_nonblock there, and add qemu_set_block
in nbd_client_thread.
Thanks,
Paolo
- [Qemu-devel] [PATCH 01/13] coroutine: remove qemu_co_queue_wait_insert_head, (continued)
- [Qemu-devel] [PATCH 01/13] coroutine: remove qemu_co_queue_wait_insert_head, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 02/13] vscclient: do not add a socket watch if there is not data to send, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 03/13] spice-char: remove unused field, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 04/13] qmp_change_blockdev() remove unused has_format, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 05/13] include: add missing config-host.h include, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 06/13] char: add qemu_chr_fe_event(), Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 07/13] spice-char: implement chardev port event, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 08/13] Split nbd block client code, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 09/13] nbd: don't change socket block during negotiate, Marc-André Lureau, 2013/11/29
- Re: [Qemu-devel] [PATCH 09/13] nbd: don't change socket block during negotiate,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 10/13] nbd: pass export name as init argument, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 11/13] nbd: make session_close() idempotent, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 12/13] nbd: finish any pending coroutine, Marc-André Lureau, 2013/11/29
- [Qemu-devel] [PATCH 13/13] nbd: avoid uninitialized warnings, Marc-André Lureau, 2013/11/29