Spdk/lib/vhost
Darek Stojaczyk e051a5366e vhost: ignore sessions that weren't ever started
The previous patches described as optimizations also
fixed some issues. They seem sufficient to cover all
the error cases, but the real source of the problem
lies in foreach_session() initiated by the device backend,
which can use sessions that were never seen by the
backend.

The backends are only notified when a session is
*started*, but foreach_session() iterates through
all the sessions - even those that were never started.
Vhost SCSI, for example, in the foreach_session() callbacks
used to expect svsession->svdev to be always set, but
that field is only set when the session gets started.

A perfect solution would to introduce a new backend
callback to be called on new connection. Vhost SCSI
could set e.g. svsession->svdev inside. For now we go
with much easier solution that prevents sessions from
being used in foreach-session() unless they were
started at least once. (...and e.g. got their ->svdev set)

Change-Id: Ida30a1f27f99977360d08a71a64fc92931b25b75
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/449394
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-04-22 15:41:51 +00:00
..
rte_vhost rte_vhost: introduce get/set vring base idx APIs 2019-02-27 01:43:16 +00:00
Makefile vhost: install external msg handling hooks to rte_vhost 2019-03-13 14:26:20 +00:00
rte_vhost_compat.c vhost/compat: implement SET/GET_CONFIG 2019-03-15 22:03:26 +00:00
vhost_blk.c vhost: change vsession->lcore only within that lcore 2019-03-28 14:16:56 +00:00
vhost_internal.h vhost: ignore sessions that weren't ever started 2019-04-22 15:41:51 +00:00
vhost_nvme.c vhost: change vsession->lcore only within that lcore 2019-03-28 14:16:56 +00:00
vhost_rpc.c configure: add option not to use the internal rte_vhost copy 2019-03-13 14:26:20 +00:00
vhost_scsi.c vhost/scsi: fix newly attached targets being hotremoved by mistake 2019-04-22 15:41:51 +00:00
vhost.c vhost: ignore sessions that weren't ever started 2019-04-22 15:41:51 +00:00