diff options
author | Trond Myklebust | 2019-01-30 14:51:26 -0500 |
---|---|---|
committer | Trond Myklebust | 2019-02-20 17:33:54 -0500 |
commit | 0ffe86f48026b7f34db22d1004bc9992f0db8b33 (patch) | |
tree | dd64e946ccdfdef857fc51476b66fb48efee5de2 /block/kyber-iosched.c | |
parent | a1231fda7e944adf37d8368b2e182041a39ea1ca (diff) |
SUNRPC: Use poll() to fix up the socket requeue races
Because we clear XPRT_SOCK_DATA_READY before reading, we can end up
with a situation where new data arrives, causing xs_data_ready() to
queue up a second receive worker job for the same socket, which then
immediately gets stuck waiting on the transport receive mutex.
The fix is to only clear XPRT_SOCK_DATA_READY once we're done reading,
and then to use poll() to check if we might need to queue up a new
job in order to deal with any new data.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'block/kyber-iosched.c')
0 files changed, 0 insertions, 0 deletions