list_remove_head(lpfc_iocb_list, iocbqrsp, struct lpfc_iocbq, list); 
iocbqrsp = lpfc_sli_get_iocbq(phba);  
lpfc_scsi_tgt_reset(struct lpfc_scsi_buf * lpfc_cmd, struct lpfc_hba * phba){	struct lpfc_iocbq *iocbq;	struct lpfc_iocbq *iocbqrsp = NULL;	struct list_head *lpfc_iocb_list = &phba->lpfc_iocb_list;	int ret;	ret = lpfc_scsi_prep_task_mgmt_cmd(phba, lpfc_cmd, FCP_TARGET_RESET);	if (!ret)		return FAILED;	lpfc_cmd->scsi_hba = phba;	iocbq = &lpfc_cmd->cur_iocbq;	list_remove_head(lpfc_iocb_list, iocbqrsp, struct lpfc_iocbq, list);	if (!iocbqrsp)		return FAILED;	ret = lpfc_sli_issue_iocb_wait(phba,				       &phba->sli.ring[phba->sli.fcp_ring],				       iocbq, iocbqrsp, lpfc_cmd->timeout);	if (ret != IOCB_SUCCESS) {		lpfc_cmd->status = IOSTAT_DRIVER_REJECT;		ret = FAILED;	} else {		ret = SUCCESS;		lpfc_cmd->result = iocbqrsp->iocb.un.ulpWord[4];		lpfc_cmd->status = iocbqrsp->iocb.ulpStatus;		if (lpfc_cmd->status == IOSTAT_LOCAL_REJECT &&			(lpfc_cmd->result & IOERR_DRVR_MASK))				lpfc_cmd->status = IOSTAT_DRIVER_REJECT;	}	/*	 * All outstanding txcmplq I/Os should have been aborted by the target.	 * Unfortunately, some targets do not abide by this forcing the driver	 * to double check.	 */	lpfc_sli_abort_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring],			    lpfc_cmd->pCmd->device->id,			    lpfc_cmd->pCmd->device->lun, 0, LPFC_CTX_TGT);	lpfc_sli_release_iocbq(phba, iocbqrsp);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0bd4ca25ad2ace4aa717c83dbd4ed21c53c953cb/lpfc_scsi.c/clean/drivers/scsi/lpfc/lpfc_scsi.c