vhost-scsi: Drop vhost_scsi_mutex use in port callouts
authorMike Christie <michael.christie@oracle.com>
Tue, 21 Mar 2023 02:06:23 +0000 (21:06 -0500)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 21 Apr 2023 07:02:30 +0000 (03:02 -0400)
commitf5ed6f9e82ee62bf805551522dfa2d6c8030bb47
tree6d7509f9dcaad1a32e1372cc846fbac96d4839b5
parentced9eb376ab716ec5b06bef8c3e05608b8eb6700
vhost-scsi: Drop vhost_scsi_mutex use in port callouts

We are using the vhost_scsi_mutex to make sure vhost_scsi_port_link and
vhost_scsi_port_unlink see if vhost_scsi_clear_endpoint has cleared
tpg->vhost_scsi and it can't be freed while they are using.

However, we currently set the tpg->vhost_scsi pointer while holding
tv_tpg_mutex. So, we can just hold that while calling
vhost_scsi_hotplug/hotunplug. We then don't need to hold the
vhost_scsi_mutex while vhost_scsi_clear_endpoint is holding it and doing
a flush which could cause the LUN map/unmap to have to wait on another
device's flush.

Signed-off-by: Mike Christie <michael.christie@oracle.com>
Message-Id: <20230321020624.13323-7-michael.christie@oracle.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vhost/scsi.c