Jiang Yi
5e0cf5e6c4
iscsi-target: Always wait for kthread_should_stop() before kthread exit
...
There are three timing problems in the kthread usages of iscsi_target_mod:
- np_thread of struct iscsi_np
- rx_thread and tx_thread of struct iscsi_conn
In iscsit_close_connection(), it calls
send_sig(SIGINT, conn->tx_thread, 1);
kthread_stop(conn->tx_thread);
In conn->tx_thread, which is iscsi_target_tx_thread(), when it receive
SIGINT the kthread will exit without checking the return value of
kthread_should_stop().
So if iscsi_target_tx_thread() exit right between send_sig(SIGINT...)
and kthread_stop(...), the kthread_stop() will try to stop an already
stopped kthread.
This is invalid according to the documentation of kthread_stop().
(Fix -ECONNRESET logout handling in iscsi_target_tx_thread and
early iscsi_target_rx_thread failure case - nab)
Signed-off-by: Jiang Yi <jiangyilism@gmail.com>
Cc: <stable@vger.kernel.org> # v3.12+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2017-05-31 15:12:57 -07:00
..
iscsi
iscsi-target: Always wait for kthread_should_stop() before kthread exit
2017-05-31 15:12:57 -07:00
loopback
sbp
tcm_fc
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2017-03-02 14:52:05 -08:00
Kconfig
block: make scsi_request and scsi ioctl support optional
2017-01-31 10:53:05 -07:00
Makefile
target_core_alua.c
target: Fix ALUA transition state race between multiple initiators
2017-03-30 23:12:40 -07:00
target_core_alua.h
target_core_configfs.c
target: fixup error message in target_tg_pt_gp_tg_pt_gp_id_store()
2017-05-01 22:21:53 -07:00
target_core_device.c
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2017-05-12 11:44:13 -07:00
target_core_fabric_configfs.c
target: Avoid mappedlun symlink creation during lun shutdown
2017-03-30 01:36:52 -07:00
target_core_fabric_lib.c
target_core_file.c
target/fileio: Fix zero-length READ and WRITE handling
2017-05-07 16:05:16 -07:00
target_core_file.h
target_core_hba.c
target_core_iblock.c
target/iblock: convert iblock_req.pending from atomic_t to refcount_t
2017-05-01 22:20:43 -07:00
target_core_iblock.h
target/iblock: convert iblock_req.pending from atomic_t to refcount_t
2017-05-01 22:20:43 -07:00
target_core_internal.h
target_core_pr.c
target/user: PGR Support
2017-05-01 22:21:45 -07:00
target_core_pr.h
target/pr: update PR out action code table
2017-05-01 22:20:44 -07:00
target_core_pscsi.c
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2017-05-12 11:44:13 -07:00
target_core_pscsi.h
target_core_rd.c
target: Improve size determinations in two functions
2017-05-01 22:21:30 -07:00
target_core_rd.h
target_core_sbc.c
Revert "target: Fix VERIFY and WRITE VERIFY command parsing"
2017-05-11 01:01:05 -07:00
target_core_spc.c
target_core_stat.c
target: Add counters for ABORT_TASK success + failure
2017-02-26 16:21:06 -08:00
target_core_tmr.c
target: Add counters for ABORT_TASK success + failure
2017-02-26 16:21:06 -08:00
target_core_tpg.c
target: Don't force session reset if queue_depth does not change
2017-05-04 20:01:40 -07:00
target_core_transport.c
target: Re-add check to reject control WRITEs with overflow data
2017-05-15 20:20:29 -07:00
target_core_ua.c
target_core_ua.h
target_core_user.c
tcmu: fix crash during device removal
2017-05-23 19:50:49 -07:00
target_core_xcopy.c
target: Use correct SCSI status during EXTENDED_COPY exception
2017-02-08 07:46:54 -08:00
target_core_xcopy.h
target: check for XCOPY parameter truncation
2017-01-10 08:41:27 -08:00