Files
ubports_kernel_google_msm/include/linux
Tom Tucker 24b8b44780 svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet
RDMA_READ completions are kept on a separate queue from the general
I/O request queue. Since a separate lock is used to protect the RDMA_READ
completion queue, a race exists between the dto_tasklet and the
svc_rdma_recvfrom thread where the dto_tasklet sets the XPT_DATA
bit and adds I/O to the read-completion queue. Concurrently, the
recvfrom thread checks the generic queue, finds it empty and resets
the XPT_DATA bit. A subsequent svc_xprt_enqueue will fail to enqueue
the transport for I/O and cause the transport to "stall".

The fix is to protect both lists with the same lock and set the XPT_DATA
bit with this lock held.

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
2008-08-13 16:57:31 -04:00
..
2008-07-25 10:53:30 -07:00
2008-08-10 23:32:07 +02:00
2008-07-27 01:26:17 +02:00
2008-08-05 14:33:46 -07:00
2008-08-12 10:13:38 +10:00
2008-07-24 10:47:24 -07:00
2008-07-24 10:47:33 -07:00
2008-07-24 10:47:33 -07:00
2008-08-04 21:56:09 -07:00
2008-07-25 10:53:33 -07:00
2008-07-20 17:12:38 -07:00
2008-07-22 17:30:57 -07:00
2008-07-21 12:00:37 +01:00
2008-07-21 12:00:37 +01:00
2008-07-24 10:47:29 -07:00
2008-07-24 10:47:41 -07:00
2008-08-12 16:07:31 -07:00
2008-07-16 23:27:03 +02:00
2008-07-26 20:53:20 -04:00
2008-07-25 10:53:48 -07:00
2008-07-20 17:12:36 -07:00
2008-07-25 10:53:30 -07:00
2008-07-20 17:12:36 -07:00
2008-07-23 15:25:21 +02:00
2008-08-08 15:13:27 +01:00
2008-08-05 18:17:01 +02:00
2008-07-25 10:53:42 -07:00
2008-07-18 18:05:19 -07:00
2008-07-14 22:49:06 -07:00
2008-08-02 18:36:10 +01:00
2008-07-25 10:53:39 -07:00
2008-07-30 09:41:43 -07:00
2008-07-20 17:12:37 -07:00
2008-07-30 09:41:45 -07:00
2008-08-12 17:52:54 +10:00
2008-07-24 10:47:17 -07:00
2008-07-23 09:49:56 +01:00
2008-08-08 16:17:16 -07:00
2008-08-11 15:25:07 +02:00
2008-07-24 10:47:41 -07:00
2008-07-27 01:56:38 +02:00
2008-07-27 01:54:58 +02:00
2008-08-02 16:28:50 +02:00
2008-07-28 16:30:21 -07:00
2008-07-28 16:30:21 -07:00
2008-07-24 10:47:24 -07:00
2008-07-25 10:53:34 -07:00
2008-07-25 10:53:29 -07:00
2008-08-04 23:04:08 -07:00
2008-08-04 21:31:34 -07:00
2008-08-04 21:31:34 -07:00
2008-07-26 12:00:03 -07:00
2008-08-07 15:33:36 -07:00
2008-08-05 14:33:50 -07:00
2008-07-26 20:53:12 -04:00
2008-08-07 17:18:47 -07:00
2008-07-25 10:53:29 -07:00
2008-08-11 09:30:24 +02:00
2008-07-25 10:53:29 -07:00
2008-07-25 21:45:49 -07:00
2008-08-11 08:59:03 +02:00
2008-07-25 10:53:42 -07:00
2008-07-24 08:31:21 -04:00
2008-07-24 10:47:24 -07:00
2008-08-05 09:28:47 +03:00
2008-07-25 10:53:30 -07:00
2008-07-27 01:47:00 +02:00
2008-08-11 09:30:24 +02:00
2008-07-20 17:12:37 -07:00
2008-07-26 12:00:12 -07:00
2008-07-26 20:53:12 -04:00
2008-08-07 17:18:47 -07:00
2008-07-22 13:03:28 -07:00
2008-07-20 17:12:34 -07:00
2008-07-22 13:03:27 -07:00
2008-07-21 15:15:55 -07:00
2008-07-24 10:47:14 -07:00
2008-07-25 10:53:40 -07:00