vhost-scsi: Drop device mutex use in vhost_scsi_do_plug
We don't need the device mutex in vhost_scsi_do_plug because: 1. we have the vhost_scsi_mutex so the tpg->vhost_scsi pointer will not change on us and the vhost_scsi can't be freed from under us if it was set. 2. vhost_scsi_clear_endpoint will stop the virtqueues and flush them while holding the vhost_scsi_mutex so we know once vhost_scsi_clear_endpoint has completed that vhost_scsi_do_plug can't send new events and any queued ones have completed. So this patch drops the device mutex use in vhost_scsi_do_plug. Signed-off-by: Mike Christie <michael.christie@oracle.com> Message-Id: <20230321020624.13323-5-michael.christie@oracle.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
9a10cb4de3
commit
eb1b291466
|
@ -2003,8 +2003,6 @@ vhost_scsi_do_plug(struct vhost_scsi_tpg *tpg,
|
||||||
if (!vs)
|
if (!vs)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mutex_lock(&vs->dev.mutex);
|
|
||||||
|
|
||||||
if (plug)
|
if (plug)
|
||||||
reason = VIRTIO_SCSI_EVT_RESET_RESCAN;
|
reason = VIRTIO_SCSI_EVT_RESET_RESCAN;
|
||||||
else
|
else
|
||||||
|
@ -2016,7 +2014,6 @@ vhost_scsi_do_plug(struct vhost_scsi_tpg *tpg,
|
||||||
vhost_scsi_send_evt(vs, tpg, lun,
|
vhost_scsi_send_evt(vs, tpg, lun,
|
||||||
VIRTIO_SCSI_T_TRANSPORT_RESET, reason);
|
VIRTIO_SCSI_T_TRANSPORT_RESET, reason);
|
||||||
mutex_unlock(&vq->mutex);
|
mutex_unlock(&vq->mutex);
|
||||||
mutex_unlock(&vs->dev.mutex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vhost_scsi_hotplug(struct vhost_scsi_tpg *tpg, struct se_lun *lun)
|
static void vhost_scsi_hotplug(struct vhost_scsi_tpg *tpg, struct se_lun *lun)
|
||||||
|
|
Loading…
Reference in New Issue