• James.Smart@Emulex.Com's avatar
    [SCSI] fix for fc transport recursion problem. · 42e33148
    James.Smart@Emulex.Com authored
    In the scenario that a link was broken, the devloss timer for each
    rport was expire at roughly the same time, causing lots of "delete"
    workqueue items being queued. Depth is dependent upon the number of
    rports that were on the link.
    
    The rport target remove calls were calling flush_scheduled_work(),
    which would interrupt the stream, and start the next workqueue item,
    which did the same thing, and so on until recursion depth was large.
    
    This fix stops the recursion in the initial delete path, and pushes it
    off to a host-level work item that reaps the dead rports.
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    42e33148
scsi_transport_fc.c 57.4 KB