 cmd->scsi_done(cmd); 
lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,			struct lpfc_iocbq *pIocbOut){	struct lpfc_scsi_buf *lpfc_cmd =		(struct lpfc_scsi_buf *) pIocbIn->context1;	struct lpfc_rport_data *rdata = lpfc_cmd->rdata;	struct lpfc_nodelist *pnode = rdata->pnode;	struct scsi_cmnd *cmd = lpfc_cmd->pCmd;	unsigned long iflag;	lpfc_cmd->result = pIocbOut->iocb.un.ulpWord[4];	lpfc_cmd->status = pIocbOut->iocb.ulpStatus;	if (lpfc_cmd->status) {		if (lpfc_cmd->status == IOSTAT_LOCAL_REJECT &&		    (lpfc_cmd->result & IOERR_DRVR_MASK))			lpfc_cmd->status = IOSTAT_DRIVER_REJECT;		else if (lpfc_cmd->status >= IOSTAT_CNT)			lpfc_cmd->status = IOSTAT_DEFAULT;		lpfc_printf_log(phba, KERN_WARNING, LOG_FCP,				"%d:0729 FCP cmd x%x failed <%d/%d> status: "				"x%x result: x%x Data: x%x x%x\n",				phba->brd_no, cmd->cmnd[0], cmd->device->id,				cmd->device->lun, lpfc_cmd->status,				lpfc_cmd->result, pIocbOut->iocb.ulpContext,				lpfc_cmd->cur_iocbq.iocb.ulpIoTag);		switch (lpfc_cmd->status) {		case IOSTAT_FCP_RSP_ERROR:			/* Call FCP RSP handler to determine result */			lpfc_handle_fcp_err(lpfc_cmd);			break;		case IOSTAT_NPORT_BSY:		case IOSTAT_FABRIC_BSY:			cmd->result = ScsiResult(DID_BUS_BUSY, 0);			break;		default:			cmd->result = ScsiResult(DID_ERROR, 0);			break;		}		if ((pnode == NULL )		    || (pnode->nlp_state != NLP_STE_MAPPED_NODE))			cmd->result = ScsiResult(DID_BUS_BUSY, SAM_STAT_BUSY);	} else {		cmd->result = ScsiResult(DID_OK, 0);	}	if (cmd->result || lpfc_cmd->fcp_rsp->rspSnsLen) {		uint32_t *lp = (uint32_t *)cmd->sense_buffer;		lpfc_printf_log(phba, KERN_INFO, LOG_FCP,				"%d:0710 Iodone <%d/%d> cmd %p, error x%x "				"SNS x%x x%x Data: x%x x%x\n",				phba->brd_no, cmd->device->id,				cmd->device->lun, cmd, cmd->result,				*lp, *(lp + 3), cmd->retries, cmd->resid);	}	spin_lock_irqsave(phba->host->host_lock, iflag);	lpfc_free_scsi_buf(lpfc_cmd);	cmd->host_scribble = NULL;	spin_unlock_irqrestore(phba->host->host_lock, iflag);	cmd->scsi_done(cmd);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0bd4ca25ad2ace4aa717c83dbd4ed21c53c953cb/lpfc_scsi.c/clean/drivers/scsi/lpfc/lpfc_scsi.c