]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/scsi/scsi_transport_fc.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
[linux-2.6-omap-h63xx.git] / include / scsi / scsi_transport_fc.h
index 21018a4df452f3e7a5b96e06f212408615f814c4..49d8913c4f860ad97dab941dd6538edbe08b6420 100644 (file)
@@ -357,6 +357,7 @@ struct fc_rport {   /* aka fc_starget_attrs */
 /* bit field values for struct fc_rport "flags" field: */
 #define FC_RPORT_DEVLOSS_PENDING       0x01
 #define FC_RPORT_SCAN_PENDING          0x02
+#define FC_RPORT_FAST_FAIL_TIMEDOUT    0x03
 
 #define        dev_to_rport(d)                         \
        container_of(d, struct fc_rport, dev)
@@ -678,12 +679,15 @@ fc_remote_port_chkready(struct fc_rport *rport)
                if (rport->roles & FC_PORT_ROLE_FCP_TARGET)
                        result = 0;
                else if (rport->flags & FC_RPORT_DEVLOSS_PENDING)
-                       result = DID_IMM_RETRY << 16;
+                       result = DID_TRANSPORT_DISRUPTED << 16;
                else
                        result = DID_NO_CONNECT << 16;
                break;
        case FC_PORTSTATE_BLOCKED:
-               result = DID_IMM_RETRY << 16;
+               if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT)
+                       result = DID_TRANSPORT_FAILFAST << 16;
+               else
+                       result = DID_TRANSPORT_DISRUPTED << 16;
                break;
        default:
                result = DID_NO_CONNECT << 16;