From: Eric Blake <eblake@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
qemu-devel@nongnu.org
Cc: pbonzini@redhat.com, den@openvz.org
Subject: Re: [Qemu-devel] [PATCH 01/19] nbd/server: get rid of nbd_negotiate_read and friends
Date: Tue, 30 May 2017 15:10:50 -0500 [thread overview]
Message-ID: <874e184b-3727-3bbc-0169-1073db203736@redhat.com> (raw)
In-Reply-To: <20170530143052.165002-2-vsementsov@virtuozzo.com>
[-- Attachment #1: Type: text/plain, Size: 2044 bytes --]
On 05/30/2017 09:30 AM, Vladimir Sementsov-Ogievskiy wrote:
> Functions nbd_negotiate_{read,write,drop_sync} were introduced in
> 1a6245a5b, when nbd_wr_syncv was working through qemu_co_sendv_recvv,
There is no qemu_co_sendv_recvv. Did you mean qemu_co_recv/qemu_co_send?
> which just yields, without setting any handlers. But now, nbd_wr_syncv
> works through qio_channel_yield() which sets handlers, so watchers
> are redundant in nbd_negotiate_{read,write,drop_sync}, then, let's just
> use {read,write,drop}_sync functions.
Makes sense to me. Note that I have a pending patch that was also
related to 1a6245a5, where we introduced an assertion failure (which
later morphed into a segfault) if a client hangs up really early during
negotiation:
https://lists.gnu.org/archive/html/qemu-devel/2017-05/msg06240.html
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
> +++ b/nbd/common.c
> @@ -69,6 +69,32 @@ ssize_t nbd_wr_syncv(QIOChannel *ioc,
> return done;
> }
>
> +/* Discard length bytes from channel. Return -errno on failure and 0 on
> + * success*/
Space before */, if you don't mind (yes, I know this was just code
motion, and that the old spot was wrong).
> +int drop_sync(QIOChannel *ioc, size_t size, Error **errp)
As part of moving it into nbd/common.c, please rename this function to
an nbd_ prefix, since non-static functions are more likely to collide
with the rest of the code base if not properly named. Better yet: do it
in multiple patches:
- rename the static functions and fallout to callers (all of
nbd_drop_sync, nbd_read_sync, and nbd_write_sync)
- code motion (promote nbd_drop_sync from static in client.c to exported
in common.c)
- drop nbd_negotiate_ functions in favor of common nbd_*_sync functions
The idea makes sense, but I think there's too much going on in this one
commit.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2017-05-30 20:11 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-30 14:30 [Qemu-devel] [PATCH 00/19] nbd errors and traces refactoring Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 01/19] nbd/server: get rid of nbd_negotiate_read and friends Vladimir Sementsov-Ogievskiy
2017-05-30 20:10 ` Eric Blake [this message]
2017-05-31 13:12 ` Vladimir Sementsov-Ogievskiy
2017-05-31 14:39 ` Eric Blake
2017-05-31 14:56 ` Vladimir Sementsov-Ogievskiy
2017-05-31 15:48 ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 02/19] nbd/server: get rid of ssize_t Vladimir Sementsov-Ogievskiy
2017-05-30 20:23 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 03/19] nbd/server: refactor nbd_co_send_reply Vladimir Sementsov-Ogievskiy
2017-05-30 20:25 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 04/19] nbd/server: get rid of EAGAIN dead code Vladimir Sementsov-Ogievskiy
2017-05-30 21:06 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 05/19] nbd/server: refactor nbd_co_receive_request Vladimir Sementsov-Ogievskiy
2017-05-30 21:31 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 06/19] nbd/server: remove NBDClientNewData Vladimir Sementsov-Ogievskiy
2017-05-30 22:03 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 07/19] nbd/server: nbd_negotiate: fix error path Vladimir Sementsov-Ogievskiy
2017-05-30 21:12 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 08/19] nbd/server: get rid of fail: return rc Vladimir Sementsov-Ogievskiy
2017-05-30 22:05 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 09/19] nbd/server: rename rc to ret Vladimir Sementsov-Ogievskiy
2017-05-30 22:15 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 10/19] nbd/server: refactor nbd_trip Vladimir Sementsov-Ogievskiy
2017-05-30 22:23 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 11/19] io/channel-socket: qio_channel_socket_writev handle EPIPE Vladimir Sementsov-Ogievskiy
2017-05-30 15:04 ` Daniel P. Berrange
2017-05-30 15:15 ` Vladimir Sementsov-Ogievskiy
2017-05-30 15:29 ` Daniel P. Berrange
2017-05-30 14:30 ` [Qemu-devel] [PATCH 12/19] nbd/common: nbd_wr_syncv handle QIO_CHANNEL_ERR_EPIPE Vladimir Sementsov-Ogievskiy
2017-06-01 22:13 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 13/19] nbd/server: return original error codes Vladimir Sementsov-Ogievskiy
2017-06-01 22:29 ` Eric Blake
2017-06-02 10:00 ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 14/19] nbd/server: nbd_negotiate: return 1 on NBD_OPT_ABORT Vladimir Sementsov-Ogievskiy
2017-06-01 22:33 ` Eric Blake
2017-06-02 12:55 ` Vladimir Sementsov-Ogievskiy
2017-06-02 13:14 ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 15/19] nbd/server: use errp instead of LOG Vladimir Sementsov-Ogievskiy
2017-06-03 21:46 ` Eric Blake
2017-06-05 9:33 ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 16/19] nbd/server: add errp to nbd_send_reply() Vladimir Sementsov-Ogievskiy
2017-06-03 21:50 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 17/19] nbd/common: nbd_tls_handshake: use error_reportf_err instead of TRACE Vladimir Sementsov-Ogievskiy
2017-06-03 21:55 ` Eric Blake
2017-05-30 14:30 ` [Qemu-devel] [PATCH 18/19] nbd/client: refactor TRACE of NBD_MAGIC Vladimir Sementsov-Ogievskiy
2017-06-05 15:06 ` Eric Blake
2017-06-06 9:01 ` Vladimir Sementsov-Ogievskiy
2017-05-30 14:30 ` [Qemu-devel] [PATCH 19/19] nbd: use generic trace subsystem instead of TRACE macro Vladimir Sementsov-Ogievskiy
2017-06-05 15:23 ` Eric Blake
2017-06-06 9:10 ` Vladimir Sementsov-Ogievskiy
2017-06-06 9:17 ` Vladimir Sementsov-Ogievskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874e184b-3727-3bbc-0169-1073db203736@redhat.com \
--to=eblake@redhat.com \
--cc=den@openvz.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=vsementsov@virtuozzo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).