diff options
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_os.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 9c3a57fa5060..3f391698e1ce 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -1931,7 +1931,7 @@ qla2x00_mark_all_devices_lost(scsi_qla_host_t *ha, int defer) | |||
1931 | scsi_qla_host_t *pha = to_qla_parent(ha); | 1931 | scsi_qla_host_t *pha = to_qla_parent(ha); |
1932 | 1932 | ||
1933 | list_for_each_entry(fcport, &pha->fcports, list) { | 1933 | list_for_each_entry(fcport, &pha->fcports, list) { |
1934 | if (ha->vp_idx != 0 && ha->vp_idx != fcport->vp_idx) | 1934 | if (ha->vp_idx != fcport->vp_idx) |
1935 | continue; | 1935 | continue; |
1936 | /* | 1936 | /* |
1937 | * No point in marking the device as lost, if the device is | 1937 | * No point in marking the device as lost, if the device is |
@@ -1939,17 +1939,10 @@ qla2x00_mark_all_devices_lost(scsi_qla_host_t *ha, int defer) | |||
1939 | */ | 1939 | */ |
1940 | if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD) | 1940 | if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD) |
1941 | continue; | 1941 | continue; |
1942 | if (atomic_read(&fcport->state) == FCS_ONLINE) { | 1942 | if (atomic_read(&fcport->state) == FCS_ONLINE) |
1943 | if (defer) | 1943 | qla2x00_schedule_rport_del(ha, fcport, defer); |
1944 | qla2x00_schedule_rport_del(ha, fcport, defer); | ||
1945 | else if (ha->vp_idx == fcport->vp_idx) | ||
1946 | qla2x00_schedule_rport_del(ha, fcport, defer); | ||
1947 | } | ||
1948 | atomic_set(&fcport->state, FCS_DEVICE_LOST); | 1944 | atomic_set(&fcport->state, FCS_DEVICE_LOST); |
1949 | } | 1945 | } |
1950 | |||
1951 | if (defer) | ||
1952 | qla2xxx_wake_dpc(ha); | ||
1953 | } | 1946 | } |
1954 | 1947 | ||
1955 | /* | 1948 | /* |