From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] use different fd variables for device and socket, unbreak qemu-nbd -c
Date: Sun, 15 Jan 2012 11:45:49 +0100 [thread overview]
Message-ID: <jeuaou$cul$1@dough.gmane.org> (raw)
In-Reply-To: <20120114114459.493513DE@gandalf.tls.msk.ru>
On 01/14/2012 12:41 PM, Michael Tokarev wrote:
> commit a61c67828dea7c64edaf226cadb45b4ffcc1d411
> Author: Paolo Bonzini<pbonzini@redhat.com>
> Date: Mon Sep 12 17:28:11 2011 +0200
>
> qemu-nbd: use common main loop
>
> Using a single main loop for sockets will help yielding from the socket
> coroutine back to the main loop, and later reentering it.
>
> changed code to use local variable "fd" in qemu-nbd.c:main()
> in two places: for /dev/nbd device and for control socket.
> The result is that qemu-nbd -c $device does not work anymore.
>
> Use two variables - devfs and sockfd - for the two purposes,
> instead of one fd.
>
> Signed-Off-By: Michael Tokarev<mjt@tls.msk.ru>
> ---
> qemu-nbd.c | 26 +++++++++++++-------------
> 1 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/qemu-nbd.c b/qemu-nbd.c
> index eb61c33..e76c782 100644
> --- a/qemu-nbd.c
> +++ b/qemu-nbd.c
> @@ -301,7 +301,7 @@ int main(int argc, char **argv)
> int flags = BDRV_O_RDWR;
> int partition = -1;
> int ret;
> - int fd;
> + int sockfd, devfd;
> int persistent = 0;
> pthread_t client_thread;
>
> @@ -401,13 +401,13 @@ int main(int argc, char **argv)
> }
>
> if (disconnect) {
> - fd = open(argv[optind], O_RDWR);
> - if (fd == -1)
> + sockfd = open(argv[optind], O_RDWR);
> + if (sockfd == -1)
> err(EXIT_FAILURE, "Cannot open %s", argv[optind]);
>
> - nbd_disconnect(fd);
> + nbd_disconnect(sockfd);
>
> - close(fd);
> + close(sockfd);
>
> printf("%s disconnected\n", argv[optind]);
>
This should be devfd.
> @@ -470,8 +470,8 @@ int main(int argc, char **argv)
> /* Open before spawning new threads. In the future, we may
> * drop privileges after opening.
> */
> - fd = open(device, O_RDWR);
> - if (fd == -1) {
> + devfd = open(device, O_RDWR);
> + if (devfd == -1) {
> err(EXIT_FAILURE, "Failed to open %s", device);
> }
>
> @@ -501,19 +501,19 @@ int main(int argc, char **argv)
> exp = nbd_export_new(bs, dev_offset, fd_size, nbdflags);
>
> if (sockpath) {
> - fd = unix_socket_incoming(sockpath);
> + sockfd = unix_socket_incoming(sockpath);
> } else {
> - fd = tcp_socket_incoming(bindto, port);
> + sockfd = tcp_socket_incoming(bindto, port);
> }
>
> - if (fd == -1) {
> + if (sockfd == -1) {
> return 1;
> }
>
> if (device) {
> int ret;
>
> - ret = pthread_create(&client_thread, NULL, nbd_client_thread,&fd);
> + ret = pthread_create(&client_thread, NULL, nbd_client_thread,&devfd);
> if (ret != 0) {
> errx(EXIT_FAILURE, "Failed to create client thread: %s",
> strerror(ret));
> @@ -524,8 +524,8 @@ int main(int argc, char **argv)
> }
>
> qemu_init_main_loop();
> - qemu_set_fd_handler2(fd, nbd_can_accept, nbd_accept, NULL,
> - (void *)(uintptr_t)fd);
> + qemu_set_fd_handler2(sockfd, nbd_can_accept, nbd_accept, NULL,
> + (void *)(uintptr_t)sockfd);
>
> do {
> main_loop_wait(false);
Otherwise looks good, I'll fix up and send for inclusion.
Paolo
next prev parent reply other threads:[~2012-01-15 10:50 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-14 11:41 [Qemu-devel] [PATCH] use different fd variables for device and socket, unbreak qemu-nbd -c Michael Tokarev
2012-01-15 10:45 ` Paolo Bonzini [this message]
2012-01-15 13:01 ` Michael Tokarev
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='jeuaou$cul$1@dough.gmane.org' \
--to=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).