Mikolaj Golub
3204c8e596
In soreceive_generic(), if MSG_WAITALL is set but the request is
...
larger than the receive buffer, we have to receive in sections.
When notifying the protocol that some data has been drained the
lock is released for a moment. Returning we block waiting for the
rest of data. There is a race, when data could arrive while the
lock was released and then the connection stalls in sbwait.
Fix this by checking for data before blocking and skip blocking
if there are some.
PR: kern/154504
Reported by: Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua>
Tested by: Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua>
Reviewed by: rwatson
Approved by: kib (co-mentor)
MFC after: 2 weeks
2011-05-29 18:00:50 +00:00
..
2011-04-29 21:36:45 +00:00
2011-03-01 13:28:27 +00:00
2011-05-24 13:22:40 +00:00
2011-04-05 20:23:59 +00:00
2011-04-05 20:23:59 +00:00
2011-04-05 20:23:59 +00:00
2011-03-06 22:59:30 +00:00
2011-03-31 19:22:11 +00:00
2011-04-18 16:32:47 +00:00
2010-06-21 09:55:56 +00:00
2010-04-26 13:48:22 +00:00
2011-04-06 17:47:22 +00:00
2011-05-16 15:29:59 +00:00
2011-05-18 22:36:58 +00:00
2010-08-09 14:48:31 +00:00
2011-02-05 15:10:27 +00:00
2010-07-23 16:46:42 +00:00
2011-05-22 21:35:03 +00:00
2011-05-12 10:56:33 +00:00
2011-02-25 10:11:01 +00:00
2011-05-23 16:40:44 +00:00
2011-01-12 19:54:19 +00:00
2011-04-01 13:28:34 +00:00
2011-02-25 22:05:33 +00:00
2011-04-14 14:25:47 +00:00
2010-12-21 18:23:03 +00:00
2011-03-31 19:22:11 +00:00
2010-04-30 03:10:53 +00:00
2011-04-13 11:28:46 +00:00
2009-11-03 16:46:52 +00:00
2011-04-26 07:30:52 +00:00
2011-05-03 07:32:58 +00:00
2011-04-12 08:13:18 +00:00
2011-01-06 22:26:00 +00:00
2011-02-25 10:11:01 +00:00
2011-04-06 17:47:22 +00:00
2011-03-30 14:46:12 +00:00
2011-02-25 10:11:01 +00:00
2009-06-25 18:54:56 +00:00
2009-05-26 20:28:22 +00:00
2011-03-29 17:47:25 +00:00
2011-03-23 16:38:29 +00:00
2010-06-21 09:55:56 +00:00
2011-01-12 19:54:19 +00:00
2010-11-22 15:28:54 +00:00
2010-11-09 20:46:41 +00:00
2011-02-25 10:11:01 +00:00
2009-05-29 10:52:37 +00:00
2010-11-25 20:05:11 +00:00
2011-02-25 10:11:01 +00:00
2009-08-15 23:07:43 +00:00
2010-08-22 11:18:57 +00:00
2011-05-12 10:11:39 +00:00
2011-03-31 18:12:04 +00:00
2011-05-27 19:57:58 +00:00
2011-05-27 19:57:58 +00:00
2011-04-06 17:47:22 +00:00
2010-11-16 14:08:21 +00:00
2010-03-24 19:21:26 +00:00
2010-06-21 09:55:56 +00:00
2011-04-28 16:02:05 +00:00
2011-05-26 18:54:07 +00:00
2010-06-11 18:46:34 +00:00
2011-03-21 09:40:01 +00:00
2011-05-24 13:17:08 +00:00
2010-10-21 20:31:50 +00:00
2011-05-13 05:27:58 +00:00
2011-01-19 23:00:25 +00:00
2011-03-31 19:22:11 +00:00
2011-03-24 18:40:11 +00:00
2010-10-09 02:50:23 +00:00
2011-04-08 18:48:57 +00:00
2011-02-23 13:19:14 +00:00
2009-08-23 20:40:19 +00:00
2009-05-29 21:27:12 +00:00
2011-02-25 10:11:01 +00:00
2011-04-16 16:20:51 +00:00
2011-04-16 16:20:51 +00:00
2009-06-11 17:05:45 +00:00
2011-03-01 13:28:27 +00:00
2011-03-12 08:51:43 +00:00
2010-11-19 17:56:16 +00:00
2010-11-19 17:56:16 +00:00
2011-05-17 22:14:00 +00:00
2011-03-31 13:59:47 +00:00
2009-10-20 16:36:51 +00:00
2011-03-22 19:52:29 +00:00
2010-08-30 16:30:18 +00:00
2011-01-06 22:09:37 +00:00
2010-05-05 20:39:02 +00:00
2011-04-29 21:36:45 +00:00
2011-01-09 14:34:56 +00:00
2011-01-04 10:59:38 +00:00
2010-09-02 19:40:28 +00:00
2010-03-19 19:51:03 +00:00
2010-06-21 09:55:56 +00:00
2010-03-07 22:37:35 +00:00
2010-02-21 19:53:33 +00:00
2011-02-18 22:25:11 +00:00
2011-01-12 19:54:19 +00:00
2011-01-27 00:34:12 +00:00
2011-01-04 10:59:38 +00:00
2011-02-25 10:11:01 +00:00
2011-02-09 19:08:21 +00:00
2011-03-23 16:38:29 +00:00
2011-01-11 13:59:06 +00:00
2010-07-12 15:32:45 +00:00
2010-07-18 20:57:53 +00:00
2011-04-29 20:05:19 +00:00
2010-08-12 17:17:05 +00:00
2011-05-17 11:04:50 +00:00
2009-08-21 02:59:07 +00:00
2011-01-27 00:34:12 +00:00
2011-05-24 19:55:57 +00:00
2011-02-25 10:11:01 +00:00
2011-04-26 11:39:56 +00:00
2011-03-01 13:32:07 +00:00
2011-02-04 14:16:41 +00:00
2011-03-28 19:44:54 +00:00
2011-02-21 09:01:34 +00:00
2011-02-21 09:01:34 +00:00
2011-03-04 09:03:54 +00:00
2010-08-28 17:42:08 +00:00
2011-04-01 13:28:34 +00:00
2011-01-26 20:03:58 +00:00
2011-02-16 21:29:13 +00:00
2011-04-18 16:32:47 +00:00
2011-04-18 16:32:22 +00:00
2011-04-18 16:32:47 +00:00
2010-03-19 11:01:51 +00:00
2011-04-06 19:08:50 +00:00
2011-04-06 19:08:50 +00:00
2011-04-06 19:08:50 +00:00
2010-01-04 20:59:52 +00:00
2009-05-17 16:17:48 +00:00
2010-02-07 15:42:15 +00:00
2010-02-07 15:42:15 +00:00
2011-04-02 15:02:42 +00:00
2011-01-04 10:59:38 +00:00
2009-10-17 08:59:41 +00:00
2011-01-04 10:59:38 +00:00
2009-12-28 22:56:30 +00:00
2011-02-25 10:11:01 +00:00
2009-05-26 09:19:21 +00:00
2009-08-24 10:03:41 +00:00
2010-06-21 09:55:56 +00:00
2011-02-21 09:01:34 +00:00
2011-04-01 13:28:34 +00:00
2011-04-01 13:28:34 +00:00
2011-04-01 13:28:34 +00:00
2011-04-14 14:54:22 +00:00
2011-05-29 18:00:50 +00:00
2011-04-01 13:28:34 +00:00
2011-02-16 21:29:13 +00:00
2010-06-03 13:45:27 +00:00
2010-10-09 02:50:23 +00:00
2011-05-23 19:59:01 +00:00
2010-11-14 16:10:15 +00:00
2011-03-16 16:22:59 +00:00
2011-05-22 01:07:54 +00:00
2009-09-28 18:07:16 +00:00
2010-07-18 20:57:53 +00:00
2010-08-22 11:18:57 +00:00
2011-05-13 05:27:58 +00:00
2011-01-08 19:50:13 +00:00
2011-05-13 05:27:58 +00:00
2011-05-22 01:07:54 +00:00
2011-05-13 05:27:58 +00:00
2011-05-13 14:29:28 +00:00