Lines Matching full:scsi

14 #include <scsi/fc/fc_els.h>
15 #include <scsi/fc/fc_fcp.h>
16 #include <scsi/fc/fc_ns.h>
17 #include <scsi/scsi_cmnd.h>
18 #include <scsi/scsi_tcq.h>
226 * @scsi: scsi_cmnd where to get LUN, task attributes/flags and CDB
229 void zfcp_fc_scsi_to_fcp(struct fcp_cmnd *fcp, struct scsi_cmnd *scsi) in zfcp_fc_scsi_to_fcp() argument
233 int_to_scsilun(scsi->device->lun, (struct scsi_lun *) &fcp->fc_lun); in zfcp_fc_scsi_to_fcp()
237 if (scsi->sc_data_direction == DMA_FROM_DEVICE) in zfcp_fc_scsi_to_fcp()
239 if (scsi->sc_data_direction == DMA_TO_DEVICE) in zfcp_fc_scsi_to_fcp()
242 memcpy(fcp->fc_cdb, scsi->cmnd, scsi->cmd_len); in zfcp_fc_scsi_to_fcp()
244 datalen = scsi_bufflen(scsi); in zfcp_fc_scsi_to_fcp()
247 if (scsi_get_prot_type(scsi) == SCSI_PROT_DIF_TYPE1) { in zfcp_fc_scsi_to_fcp()
248 datalen += datalen / scsi->device->sector_size * 8; in zfcp_fc_scsi_to_fcp()
269 * @scsi: SCSI command where to update status and sense buffer
273 struct scsi_cmnd *scsi) in zfcp_fc_eval_fcp_rsp() argument
280 scsi->result |= fcp_rsp->resp.fr_status; in zfcp_fc_eval_fcp_rsp()
287 set_host_byte(scsi, DID_OK); in zfcp_fc_eval_fcp_rsp()
289 set_host_byte(scsi, DID_ERROR); in zfcp_fc_eval_fcp_rsp()
300 memcpy(scsi->sense_buffer, sense, sense_len); in zfcp_fc_eval_fcp_rsp()
305 scsi_set_resid(scsi, resid); in zfcp_fc_eval_fcp_rsp()
306 if (scsi_bufflen(scsi) - resid < scsi->underflow && in zfcp_fc_eval_fcp_rsp()
309 set_host_byte(scsi, DID_ERROR); in zfcp_fc_eval_fcp_rsp()
311 /* FCP_DL was not sufficient for SCSI data length */ in zfcp_fc_eval_fcp_rsp()
313 set_host_byte(scsi, DID_ERROR); in zfcp_fc_eval_fcp_rsp()