summaryrefslogtreecommitdiff
path: root/Documentation/ptp
diff options
context:
space:
mode:
authorRoland Dreier <roland@purestorage.com>2012-10-31 09:16:46 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-11-17 13:15:55 -0800
commit7f83bc1f1bff2e9b89b3a505750b067f0073fe5c (patch)
tree93452f9f6cee6ca772d91f1e095772e29b7851bb /Documentation/ptp
parent227ab73196544a25f0c03338c5b49d3fdc1d1e38 (diff)
iscsi-target: Fix missed wakeup race in TX thread
commit d5627acba9ae584cf4928af19f7ddf5f6837de32 upstream. The sleeping code in iscsi_target_tx_thread() is susceptible to the classic missed wakeup race: - TX thread finishes handle_immediate_queue() and handle_response_queue(), thinks both queues are empty. - Another thread adds a queue entry and does wake_up_process(), which does nothing because the TX thread is still awake. - TX thread does schedule_timeout() and sleeps forever. In practice this can kill an iSCSI connection if for example an initiator does single-threaded writes and the target misses the wakeup window when queueing an R2T; in this case the connection will be stuck until the initiator loses patience and does some task management operation (or kills the connection entirely). Fix this by converting to wait_event_interruptible(), which does not suffer from this sort of race. Signed-off-by: Roland Dreier <roland@purestorage.com> Cc: Andy Grover <agrover@redhat.com> Cc: Hannes Reinecke <hare@suse.de> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'Documentation/ptp')
0 files changed, 0 insertions, 0 deletions