fcport = qla2x00_find_fcport_by_pid(host, &purex->pur_info.pur_sid);
if (host->e_dbell.db_flags != EDB_ACTIVE ||
- (fcport && fcport->loop_id == FC_NO_LOOP_ID)) {
+ (fcport && EDIF_SESSION_DOWN(fcport))) {
ql_dbg(ql_dbg_edif, host, 0x0910c, "%s e_dbell.db_flags =%x %06x\n",
__func__, host->e_dbell.db_flags,
fcport ? fcport->d_id.b24 : 0);
struct purexevent purexinfo;
} u;
};
+
+#define EDIF_SESSION_DOWN(_s) \
+ (_s->disc_state == DSC_DELETE_PEND || \
+ _s->disc_state == DSC_DELETED || \
+ !_s->edif.app_sess_online)
+
#endif /* __QLA_EDIF_H */
goto fail_elsrej;
}
ha->elsrej.c->er_cmd = ELS_LS_RJT;
- ha->elsrej.c->er_reason = ELS_RJT_BUSY;
+ ha->elsrej.c->er_reason = ELS_RJT_LOGIC;
ha->elsrej.c->er_explan = ELS_EXPL_UNAB_DATA;
return 0;