* [Qemu-devel] [PATCH] use different fd variables for device and socket, unbreak qemu-nbd -c
@ 2012-01-14 11:41 Michael Tokarev
2012-01-15 10:45 ` Paolo Bonzini
0 siblings, 1 reply; 3+ messages in thread
From: Michael Tokarev @ 2012-01-14 11:41 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, mjt
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]);
@@ -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);
--
1.7.2.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] use different fd variables for device and socket, unbreak qemu-nbd -c
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
2012-01-15 13:01 ` Michael Tokarev
0 siblings, 1 reply; 3+ messages in thread
From: Paolo Bonzini @ 2012-01-15 10:45 UTC (permalink / raw)
To: qemu-devel
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] use different fd variables for device and socket, unbreak qemu-nbd -c
2012-01-15 10:45 ` Paolo Bonzini
@ 2012-01-15 13:01 ` Michael Tokarev
0 siblings, 0 replies; 3+ messages in thread
From: Michael Tokarev @ 2012-01-15 13:01 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel
On 15.01.2012 14:45, Paolo Bonzini wrote:
> 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.
Yes indeed. In that case make it nbdfd not devfd - there are other
variables prefixed "nbd" already.
[]
> Otherwise looks good, I'll fix up and send for inclusion.
Thanks!
FWIW, it is not -stable material, since 1.0 isn't broken yet ;)
/mjt
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-01-15 13:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2012-01-15 13:01 ` Michael Tokarev
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).