#define FCF_FABRIC_DEVICE      BIT_0
 #define FCF_LOGIN_NEEDED       BIT_1
 #define FCF_TAPE_PRESENT       BIT_2
+#define FCF_FCP2_DEVICE                BIT_3
 
 /* No loop ID flag. */
 #define FC_NO_LOOP_ID          0x1000
 
                        } else {
                                fcport->port_type = FCT_TARGET;
                                if (mb[1] & BIT_1) {
-                                       fcport->flags |= FCF_TAPE_PRESENT;
+                                       fcport->flags |= FCF_FCP2_DEVICE;
                                }
                        }
 
 
 
                data[0] = MBS_COMMAND_COMPLETE;
                if (lio->ctx.type == SRB_LOGIN_CMD && le16_to_cpu(mbx->mb1) & BIT_1)
-                       fcport->flags |= FCF_TAPE_PRESENT;
+                       fcport->flags |= FCF_FCP2_DEVICE;
 
                goto done_post_logio_done_work;
        }
                if (iop[0] & BIT_4) {
                        fcport->port_type = FCT_TARGET;
                        if (iop[0] & BIT_8)
-                               fcport->flags |= FCF_TAPE_PRESENT;
+                               fcport->flags |= FCF_FCP2_DEVICE;
                }
                if (iop[0] & BIT_5)
                        fcport->port_type = FCT_INITIATOR;
 
        scsi_qla_host_t *vha = shost_priv(sdev->host);
        struct qla_hw_data *ha = vha->hw;
        struct fc_rport *rport = starget_to_rport(sdev->sdev_target);
+       fc_port_t *fcport = *(fc_port_t **)rport->dd_data;
        struct req_que *req = vha->req;
 
        if (sdev->tagged_supported)
                scsi_deactivate_tcq(sdev, req->max_q_depth);
 
        rport->dev_loss_tmo = ha->port_down_retry_count;
+       if (sdev->type == TYPE_TAPE)
+               fcport->flags |= FCF_TAPE_PRESENT;
 
        return 0;
 }