89ae0e3c62
Previously free connections had been managed by g_conns_array, and allocate_conn() gets the lowest free connection. This had worked almost as LIFO, and the just freed connection had been reused immediately to the new connection. Using TAILQ makes management of free connections FIFO, and this will be more intuitive and simpler, and avoid potential issues due to the fact that we do not know the state INVALID is the current connection or the current connection is exited and the new connection is allocated. This patch includes following updates. Remove the test condition that the connection ID should be zero. Connection ID is used as Target Transfer Tag (TTT) and TTT is opaque number. Hence requiring connection ID to be zero is not meaningful. iscsi_conn_free() calls free_conn() while holding g_conns_mutex, but iscsi_conn_construct() does not call free_conn() without holding g_conns_mutex. Hence add g_conns_mutex to the latter. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I204f66469f0bf54845c773da5b4ac86f3c8dca60 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3089 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> |
||
---|---|---|
.. | ||
bdev_io_wait | ||
calsoft | ||
digests | ||
ext4test | ||
filesystem | ||
fio | ||
fuzz | ||
initiator | ||
ip_migration | ||
lvol | ||
multiconnection | ||
nvme_remote | ||
perf | ||
pmem | ||
qos | ||
rbd | ||
reset | ||
rpc_config | ||
sock | ||
trace_record | ||
common.sh | ||
iscsi_tgt.sh |