Paolo Bonzini 7fe7b68b32 nbd: do not block in nbd_wr_sync if no data at all is available
Right now, nbd_wr_sync will hang if no data at all is available on the
socket and the other side is not going to provide any.  Relax this by
making it loop only for writes or partial reads.  This fixes a race
where one thread is executing qemu_aio_wait() and another is executing
main_loop_wait().  Then, the select() call in main_loop_wait() can return
stale data and call the "readable" callback with no data in the socket.

Reported-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-04-19 16:36:43 +02:00
2012-04-13 09:57:36 +01:00
2012-04-02 15:04:15 -05:00
2012-04-12 19:01:42 -03:00
2012-03-27 09:15:52 -03:00
2012-04-02 15:04:15 -05:00
2012-04-12 19:01:41 -03:00
2012-04-15 21:25:15 +02:00
2012-04-07 14:00:45 +00:00
2011-11-07 10:57:36 -06:00
2012-01-13 10:55:56 -06:00
2011-12-02 10:50:57 +00:00
2012-03-14 22:20:25 +01:00
2011-08-27 15:42:35 +00:00
2011-10-21 18:14:30 +02:00
2011-12-06 11:40:01 -02:00
2011-12-06 11:40:01 -02:00
2012-04-05 14:54:40 +02:00
2012-01-18 10:23:39 -02:00
2011-09-16 08:26:31 -05:00
2012-01-13 10:37:00 +00:00
2010-11-01 00:54:06 +03:00
2011-11-07 08:01:15 +00:00
2012-02-09 16:17:51 +01:00
2012-03-12 10:30:23 +00:00
2012-03-03 18:10:16 +00:00
2012-04-15 21:25:16 +02:00
2012-03-30 08:14:11 -05:00
2012-01-10 09:36:43 +01:00
2012-03-07 13:03:51 +00:00
2012-04-01 20:30:23 +02:00
2012-03-14 22:20:27 +01:00
2012-03-14 22:20:27 +01:00
2011-06-07 13:52:10 -05:00
2012-03-15 10:39:52 -03:00
2012-03-15 10:39:52 -03:00
2011-12-02 10:50:57 +00:00
2012-04-15 21:25:17 +02:00
2012-03-14 22:20:27 +01:00
2012-03-14 22:20:27 +01:00
2012-04-09 14:35:25 -03:00
2012-04-09 14:35:25 -03:00
2012-04-09 14:35:25 -03:00
2011-12-02 10:50:57 +00:00
2011-08-27 15:42:35 +00:00
2011-08-27 15:42:35 +00:00
2011-10-16 13:13:05 +02:00
2011-10-21 18:14:30 +02:00
2012-03-19 15:17:21 +02:00
2012-01-13 10:55:56 -06:00
2011-08-04 15:51:22 +02:00
2012-04-12 19:01:41 -03:00
2012-04-12 19:01:41 -03:00
2011-06-14 03:08:57 +02:00
2011-12-09 11:25:22 +00:00
2011-12-02 10:50:57 +00:00
2012-03-14 22:20:26 +01:00
2010-03-21 08:28:47 +00:00
2012-04-15 21:26:32 +02:00
2012-03-05 17:40:12 +02:00
2012-03-15 10:39:52 -03:00
2012-03-15 10:39:52 -03:00
2011-08-27 15:42:35 +00:00
2012-02-15 09:39:21 -06:00
2012-03-27 09:15:28 -03:00
2012-02-24 13:36:04 -06:00
2012-03-16 01:04:51 +02:00
2012-03-16 01:04:51 +02:00
2012-02-17 08:33:32 -06:00
2012-02-17 08:33:32 -06:00
2011-12-22 11:53:58 +01:00
2011-02-09 10:33:54 +02:00
2012-01-13 10:55:56 -06:00
2012-03-14 22:20:27 +01:00
2012-01-10 18:23:58 +01:00
2012-04-07 14:00:45 +00:00
2012-01-10 18:23:58 +01:00
2012-04-09 14:35:25 -03:00
2010-07-01 14:27:13 -03:00
2012-02-03 10:41:08 -06:00
2012-03-02 11:56:38 +00:00
2010-09-21 18:36:42 +02:00
2012-03-12 15:09:23 -05:00
2012-04-05 14:54:41 +02:00
2010-05-19 12:45:54 -03:00
2012-04-15 21:25:16 +02:00
2012-04-07 14:00:45 +00:00
2011-03-13 14:44:22 +00:00
2011-12-15 09:20:50 -06:00
2012-03-30 08:14:11 -05:00
2012-03-30 08:14:11 -05:00
2011-12-06 10:07:04 +00:00
2012-04-05 14:54:40 +02:00
2012-04-05 14:54:40 +02:00
2010-05-19 12:45:54 -03:00
2010-10-01 10:12:43 -03:00
2011-07-21 16:48:13 -03:00
2012-04-09 14:35:25 -03:00
2010-05-19 12:45:54 -03:00
2010-05-19 12:45:54 -03:00
2012-04-03 09:34:34 +01:00
2012-03-30 08:14:11 -05:00
2010-09-18 05:53:14 +00:00
2011-12-11 17:50:43 -06:00
2012-03-30 08:14:11 -05:00
2011-10-01 09:31:08 +00:00
2012-03-14 22:20:27 +01:00
2011-08-27 15:42:35 +00:00
2012-03-15 10:39:52 -03:00
2010-03-14 22:04:50 +01:00
2011-10-31 21:52:17 +01:00
2011-08-27 15:42:35 +00:00

Read the documentation in qemu-doc.html or on http://wiki.qemu.org

- QEMU team
Description
No description provided
Readme 518 MiB
Languages
C 83%
C++ 7.7%
Python 3%
Dylan 2.2%
Shell 1.8%
Other 2.1%