vhost-scsi: remove extra flushes
The vhost work flush function was flushing the entire work queue, so there is no need for the double vhost_work_dev_flush calls in vhost_scsi_flush. And we do not need to call vhost_poll_flush for each poller because that call also ends up flushing the same work queue thread the vhost_work_dev_flush call flushed. Signed-off-by: Mike Christie <michael.christie@oracle.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Link: https://lore.kernel.org/r/20210525174733.6212-3-michael.christie@oracle.com Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Родитель
1465cb6117
Коммит
31fbea3ab9
|
@ -1430,11 +1430,6 @@ static void vhost_scsi_handle_kick(struct vhost_work *work)
|
|||
vhost_scsi_handle_vq(vs, vq);
|
||||
}
|
||||
|
||||
static void vhost_scsi_flush_vq(struct vhost_scsi *vs, int index)
|
||||
{
|
||||
vhost_poll_flush(&vs->vqs[index].vq.poll);
|
||||
}
|
||||
|
||||
/* Callers must hold dev mutex */
|
||||
static void vhost_scsi_flush(struct vhost_scsi *vs)
|
||||
{
|
||||
|
@ -1453,9 +1448,6 @@ static void vhost_scsi_flush(struct vhost_scsi *vs)
|
|||
kref_put(&old_inflight[i]->kref, vhost_scsi_done_inflight);
|
||||
|
||||
/* Flush both the vhost poll and vhost work */
|
||||
for (i = 0; i < VHOST_SCSI_MAX_VQ; i++)
|
||||
vhost_scsi_flush_vq(vs, i);
|
||||
vhost_work_dev_flush(&vs->dev);
|
||||
vhost_work_dev_flush(&vs->dev);
|
||||
|
||||
/* Wait for all reqs issued before the flush to be finished */
|
||||
|
|
Загрузка…
Ссылка в новой задаче