Spdk/lib
Jim Harris 5f697b3148 iscsi: free pdus in hot remove path with no lun
The datain handling code path will set the LUN to
NULL if it finds a task's LUN has been hotremoved.
This could happen before the iscsi hotplug routine
actually gets a chance to run.  If this happens,
one of these tasks doesn't actually get freed, and
then will be freed after the lun is closed -
causing a segfault in the bdev layer since it may
have a bdev_io associated with it.

Found by running the iscsi_tgt/fio test after
applying the next patch in this series.

There's more work needed in this hot remove clean up
path - currently we are just freeing a lot of PDUs
rather than completing them with error status when
a LUN is hot removed.  But let's tackle that
separately.

Signed-off-by: Jim Harris <james.r.harris@intel.com>

Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/455460 (master)

(cherry picked from commit 462c12d9e9)
Change-Id: I8d27f0c7a79ae91cb6504e5ff6ffc8e346c9e54c
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457270
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-06-16 14:44:50 +00:00
..
bdev ocf: adopt examine to asynchronous construct 2019-06-16 08:46:05 +00:00
blob blobstore: release same cluster as claimed during initial insert 2019-04-30 14:43:09 +00:00
blobfs blobfs: fix the wrong parameter in spdk_file_close 2019-06-16 14:44:50 +00:00
conf string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
copy ioat: allocate device struct using regular calloc 2019-04-09 06:30:42 +00:00
env_dpdk env/dpdk: detach pci devices from EAL interrupt thread 2019-04-18 22:49:30 +00:00
event nvmf: add srq opts to get_nvmf_transports method. 2019-06-16 08:46:05 +00:00
ftl lib/ftl:fix scanbuild error in ftl_anm.c 2019-06-16 14:44:50 +00:00
ioat ioat: allocate device struct using regular calloc 2019-04-09 06:30:42 +00:00
iscsi iscsi: free pdus in hot remove path with no lun 2019-06-16 14:44:50 +00:00
json json_util: add debug logs to spdk_json_decode_object function 2019-01-10 14:31:37 +00:00
jsonrpc jsonrpc: Use spdk_json_write_named_* APIs throughout 2019-02-04 07:08:04 +00:00
log app, log: clarify how to enable log flags 2019-03-29 02:35:48 +00:00
lvol lvol: Fix for lvol failed deletion flow 2019-04-02 19:23:22 +00:00
nbd nbd: optional nbd_device in start_nbd_disk 2019-04-04 08:35:50 +00:00
net net: Use spdk_json_write_named_* APIs throughout 2019-02-04 07:08:04 +00:00
notify notify: add notification library 2019-03-29 21:15:14 +00:00
nvme nvme_rdma: don't send split sgl requests inline. 2019-06-16 08:46:05 +00:00
nvmf rdma: add a flag for disabling srq. 2019-06-16 08:46:05 +00:00
reduce reduce: account for compressed buffers 2019-04-02 21:40:21 +00:00
rocksdb rocksdb: use C++ constructor/destructor for thread_ctx 2019-04-25 20:04:04 +00:00
rpc rpc: add get_spdk_version rpc method 2019-03-26 22:54:28 +00:00
scsi lib/scsi: Make spdk_scsi_dev_destruct asynchronous 2019-04-22 18:22:59 +00:00
sock sock: fix a uninitialized-variable error 2019-06-16 08:46:05 +00:00
thread thread: fix deadlock in spdk_for_each_thread error handling 2019-06-16 08:46:05 +00:00
trace lib/trace: add trace_record tool 2019-01-30 06:36:25 +00:00
ut_mock thread: Eliminate use of pthread_self and thread_ids 2019-01-15 16:53:12 +00:00
util lib/util/cpuset: add negate and xor 2019-04-09 17:40:24 +00:00
vhost vhost/scsi: don't send events when eventq is unset 2019-04-24 16:46:09 +00:00
virtio virtio: zero-out virtqueue structures at init 2019-04-22 16:49:39 +00:00
Makefile notify: add notification library 2019-03-29 21:15:14 +00:00