case DSC_DELETE_PEND:
                return;
        case DSC_DELETED:
-               if (tgt && tgt->tgt_stop && (tgt->sess_count == 0))
-                       wake_up_all(&tgt->waitQ);
-               if (sess->vha->fcport_count == 0)
-                       wake_up_all(&sess->vha->fcport_waitQ);
-
                if (!sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN] &&
-                       !sess->plogi_link[QLT_PLOGI_LINK_CONFLICT])
+                       !sess->plogi_link[QLT_PLOGI_LINK_CONFLICT]) {
+                       if (tgt && tgt->tgt_stop && tgt->sess_count == 0)
+                               wake_up_all(&tgt->waitQ);
+
+                       if (sess->vha->fcport_count == 0)
+                               wake_up_all(&sess->vha->fcport_waitQ);
                        return;
+               }
                break;
        case DSC_UPD_FCPORT:
                /*