• Mike Christie's avatar
    vhost-scsi: Delay releasing our refcount on the tpg · 9a10cb4d
    Mike Christie authored
    We currently hold the vhost_scsi_mutex the entire time we are running
    vhost_scsi_clear_endpoint. One of the reasons for this is that it prevents
    userspace from being able to free the se_tpg from under us after we have
    called target_undepend_item. However, it forces management operations for
    for other devices to have to wait on a flakey device's:
    
    vhost_scsi_clear_endpoint -> vhost_scsi_flush()
    
    call which can which can take a long time.
    
    This moves the target_undepend_item call and the tpg unsetup code to after
    we have stopped new IO from starting up and after we have waited on
    running IO. We can then release our refcount on the tpg and session
    knowing our device is no longer accessing them. We can then drop the
    vhost_scsi_mutex use during thee flush call in later patches in this set,
    when we have removed other reasons for holding it.
    Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
    Message-Id: <20230321020624.13323-4-michael.christie@oracle.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    9a10cb4d
scsi.c 64.7 KB