[SCSI] libfc: do not use DID_NO_CONNECT for pkt alloc failures.
authorMike Christie <michaelc@cs.wisc.edu>
Tue, 3 Nov 2009 19:49:54 +0000 (11:49 -0800)
committerJames Bottomley <James.Bottomley@suse.de>
Fri, 4 Dec 2009 18:01:24 +0000 (12:01 -0600)
DID_NO_CONNECT is not a nice value to use for pkt alloc failures,
because you can probably retry and IO will become available again.
For the device reset callout, we do not want to set the scsi command
result for the above reason, and because we do not need to set
the scsi_cmd->result in this path. We and other drivers do not set it
for success for example, and we do not set it for other failure.
And scsi-ml does not send every command through this path, and it is
not expecting us to use the scsi_cmnd struct like a cmd coming thruogh
queuecommand. I think it is more for storage in case we need a cmd
struct for a tmf and to give us certain params like the LUN.

Patch was made over scsi-misc today.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/libfc/fc_fcp.c

index 4bfab4f..db252e2 100644 (file)
@@ -2029,7 +2029,6 @@ int fc_eh_device_reset(struct scsi_cmnd *sc_cmd)
        fsp = fc_fcp_pkt_alloc(lport, GFP_NOIO);
        if (fsp == NULL) {
                printk(KERN_WARNING "libfc: could not allocate scsi_pkt\n");
-               sc_cmd->result = DID_NO_CONNECT << 16;
                goto out;
        }