Lines Matching refs:cmd
42 static sense_reason_t sbc_execute_unmap(struct se_cmd *cmd);
45 sbc_emulate_readcapacity(struct se_cmd *cmd) in sbc_emulate_readcapacity() argument
47 struct se_device *dev = cmd->se_dev; in sbc_emulate_readcapacity()
48 unsigned char *cdb = cmd->t_task_cdb; in sbc_emulate_readcapacity()
77 rbuf = transport_kmap_data_sg(cmd); in sbc_emulate_readcapacity()
79 memcpy(rbuf, buf, min_t(u32, sizeof(buf), cmd->data_length)); in sbc_emulate_readcapacity()
80 transport_kunmap_data_sg(cmd); in sbc_emulate_readcapacity()
83 target_complete_cmd_with_length(cmd, GOOD, 8); in sbc_emulate_readcapacity()
88 sbc_emulate_readcapacity_16(struct se_cmd *cmd) in sbc_emulate_readcapacity_16() argument
90 struct se_device *dev = cmd->se_dev; in sbc_emulate_readcapacity_16()
91 struct se_session *sess = cmd->se_sess; in sbc_emulate_readcapacity_16()
140 rbuf = transport_kmap_data_sg(cmd); in sbc_emulate_readcapacity_16()
142 memcpy(rbuf, buf, min_t(u32, sizeof(buf), cmd->data_length)); in sbc_emulate_readcapacity_16()
143 transport_kunmap_data_sg(cmd); in sbc_emulate_readcapacity_16()
146 target_complete_cmd_with_length(cmd, GOOD, 32); in sbc_emulate_readcapacity_16()
151 sbc_emulate_startstop(struct se_cmd *cmd) in sbc_emulate_startstop() argument
153 unsigned char *cdb = cmd->t_task_cdb; in sbc_emulate_startstop()
178 target_complete_cmd(cmd, SAM_STAT_GOOD); in sbc_emulate_startstop()
182 sector_t sbc_get_write_same_sectors(struct se_cmd *cmd) in sbc_get_write_same_sectors() argument
186 if (cmd->t_task_cdb[0] == WRITE_SAME) in sbc_get_write_same_sectors()
187 num_blocks = get_unaligned_be16(&cmd->t_task_cdb[7]); in sbc_get_write_same_sectors()
188 else if (cmd->t_task_cdb[0] == WRITE_SAME_16) in sbc_get_write_same_sectors()
189 num_blocks = get_unaligned_be32(&cmd->t_task_cdb[10]); in sbc_get_write_same_sectors()
191 num_blocks = get_unaligned_be32(&cmd->t_task_cdb[28]); in sbc_get_write_same_sectors()
200 return cmd->se_dev->transport->get_blocks(cmd->se_dev) - in sbc_get_write_same_sectors()
201 cmd->t_task_lba + 1; in sbc_get_write_same_sectors()
206 sbc_execute_write_same_unmap(struct se_cmd *cmd) in sbc_execute_write_same_unmap() argument
208 struct sbc_ops *ops = cmd->protocol_data; in sbc_execute_write_same_unmap()
209 sector_t nolb = sbc_get_write_same_sectors(cmd); in sbc_execute_write_same_unmap()
213 ret = ops->execute_unmap(cmd, cmd->t_task_lba, nolb); in sbc_execute_write_same_unmap()
218 target_complete_cmd(cmd, GOOD); in sbc_execute_write_same_unmap()
223 sbc_emulate_noop(struct se_cmd *cmd) in sbc_emulate_noop() argument
225 target_complete_cmd(cmd, GOOD); in sbc_emulate_noop()
229 static inline u32 sbc_get_size(struct se_cmd *cmd, u32 sectors) in sbc_get_size() argument
231 return cmd->se_dev->dev_attrib.block_size * sectors; in sbc_get_size()
295 sbc_setup_write_same(struct se_cmd *cmd, unsigned char *flags, struct sbc_ops *ops) in sbc_setup_write_same() argument
297 struct se_device *dev = cmd->se_dev; in sbc_setup_write_same()
299 unsigned int sectors = sbc_get_write_same_sectors(cmd); in sbc_setup_write_same()
308 if (sectors > cmd->se_dev->dev_attrib.max_write_same_len) { in sbc_setup_write_same()
310 sectors, cmd->se_dev->dev_attrib.max_write_same_len); in sbc_setup_write_same()
316 if (((cmd->t_task_lba + sectors) < cmd->t_task_lba) || in sbc_setup_write_same()
317 ((cmd->t_task_lba + sectors) > end_lba)) { in sbc_setup_write_same()
319 (unsigned long long)end_lba, cmd->t_task_lba, sectors); in sbc_setup_write_same()
341 cmd->execute_cmd = sbc_execute_write_same_unmap; in sbc_setup_write_same()
347 ret = sbc_check_prot(dev, cmd, &cmd->t_task_cdb[0], sectors, true); in sbc_setup_write_same()
351 cmd->execute_cmd = ops->execute_write_same; in sbc_setup_write_same()
355 static sense_reason_t xdreadwrite_callback(struct se_cmd *cmd, bool success, in xdreadwrite_callback() argument
374 buf = kmalloc(cmd->data_length, GFP_KERNEL); in xdreadwrite_callback()
383 sg_copy_to_buffer(cmd->t_data_sg, in xdreadwrite_callback()
384 cmd->t_data_nents, in xdreadwrite_callback()
386 cmd->data_length); in xdreadwrite_callback()
394 for_each_sg(cmd->t_bidi_data_sg, sg, cmd->t_bidi_data_nents, count) { in xdreadwrite_callback()
414 sbc_execute_rw(struct se_cmd *cmd) in sbc_execute_rw() argument
416 struct sbc_ops *ops = cmd->protocol_data; in sbc_execute_rw()
418 return ops->execute_rw(cmd, cmd->t_data_sg, cmd->t_data_nents, in sbc_execute_rw()
419 cmd->data_direction); in sbc_execute_rw()
422 static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success, in compare_and_write_post() argument
425 struct se_device *dev = cmd->se_dev; in compare_and_write_post()
433 spin_lock_irq(&cmd->t_state_lock); in compare_and_write_post()
434 if (cmd->transport_state & CMD_T_SENT) { in compare_and_write_post()
435 cmd->se_cmd_flags |= SCF_COMPARE_AND_WRITE_POST; in compare_and_write_post()
438 if (cmd->scsi_status == SAM_STAT_CHECK_CONDITION) in compare_and_write_post()
441 spin_unlock_irq(&cmd->t_state_lock); in compare_and_write_post()
452 static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool success, in compare_and_write_callback() argument
455 struct se_device *dev = cmd->se_dev; in compare_and_write_callback()
460 unsigned int nlbas = cmd->t_task_nolb; in compare_and_write_callback()
470 if (!success && (!cmd->t_data_sg || !cmd->t_bidi_data_sg)) in compare_and_write_callback()
475 if (!cmd->data_length) in compare_and_write_callback()
481 if (cmd->scsi_status) { in compare_and_write_callback()
483 " 0x%02x\n", cmd->scsi_status); in compare_and_write_callback()
485 if (cmd->scsi_status == SAM_STAT_CHECK_CONDITION) in compare_and_write_callback()
490 buf = kzalloc(cmd->data_length, GFP_KERNEL); in compare_and_write_callback()
497 write_sg = kmalloc_array(cmd->t_data_nents, sizeof(*write_sg), in compare_and_write_callback()
504 sg_init_table(write_sg, cmd->t_data_nents); in compare_and_write_callback()
508 rc = sg_copy_to_buffer(cmd->t_data_sg, cmd->t_data_nents, buf, in compare_and_write_callback()
509 cmd->data_length); in compare_and_write_callback()
518 for_each_sg(cmd->t_bidi_data_sg, sg, cmd->t_bidi_data_nents, i) { in compare_and_write_callback()
542 len = cmd->t_task_nolb * block_size; in compare_and_write_callback()
543 sg_miter_start(&m, cmd->t_data_sg, cmd->t_data_nents, SG_MITER_TO_SG); in compare_and_write_callback()
567 cmd->t_data_sg_orig = cmd->t_data_sg; in compare_and_write_callback()
568 cmd->t_data_sg = write_sg; in compare_and_write_callback()
569 cmd->t_data_nents_orig = cmd->t_data_nents; in compare_and_write_callback()
570 cmd->t_data_nents = 1; in compare_and_write_callback()
572 cmd->sam_task_attr = TCM_HEAD_TAG; in compare_and_write_callback()
573 cmd->transport_complete_callback = compare_and_write_post; in compare_and_write_callback()
578 cmd->execute_cmd = sbc_execute_rw; in compare_and_write_callback()
580 spin_lock_irq(&cmd->t_state_lock); in compare_and_write_callback()
581 cmd->t_state = TRANSPORT_PROCESSING; in compare_and_write_callback()
582 cmd->transport_state |= CMD_T_ACTIVE | CMD_T_SENT; in compare_and_write_callback()
583 spin_unlock_irq(&cmd->t_state_lock); in compare_and_write_callback()
585 __target_execute_cmd(cmd, false); in compare_and_write_callback()
606 sbc_compare_and_write(struct se_cmd *cmd) in sbc_compare_and_write() argument
608 struct sbc_ops *ops = cmd->protocol_data; in sbc_compare_and_write()
609 struct se_device *dev = cmd->se_dev; in sbc_compare_and_write()
618 cmd->transport_complete_callback = NULL; in sbc_compare_and_write()
626 cmd->data_length = cmd->t_task_nolb * dev->dev_attrib.block_size; in sbc_compare_and_write()
628 ret = ops->execute_rw(cmd, cmd->t_bidi_data_sg, cmd->t_bidi_data_nents, in sbc_compare_and_write()
631 cmd->transport_complete_callback = NULL; in sbc_compare_and_write()
645 bool is_write, struct se_cmd *cmd) in sbc_set_prot_op_checks() argument
648 cmd->prot_op = fabric_prot ? TARGET_PROT_DOUT_STRIP : in sbc_set_prot_op_checks()
654 cmd->prot_checks = 0; in sbc_set_prot_op_checks()
658 cmd->prot_checks = TARGET_DIF_CHECK_GUARD; in sbc_set_prot_op_checks()
660 cmd->prot_checks |= TARGET_DIF_CHECK_REFTAG; in sbc_set_prot_op_checks()
664 cmd->prot_checks = TARGET_DIF_CHECK_REFTAG; in sbc_set_prot_op_checks()
667 cmd->prot_checks = TARGET_DIF_CHECK_GUARD; in sbc_set_prot_op_checks()
674 cmd->prot_op = fabric_prot ? TARGET_PROT_DIN_INSERT : in sbc_set_prot_op_checks()
681 cmd->prot_checks = TARGET_DIF_CHECK_GUARD; in sbc_set_prot_op_checks()
683 cmd->prot_checks |= TARGET_DIF_CHECK_REFTAG; in sbc_set_prot_op_checks()
687 cmd->prot_checks = TARGET_DIF_CHECK_REFTAG; in sbc_set_prot_op_checks()
690 cmd->prot_checks = 0; in sbc_set_prot_op_checks()
693 cmd->prot_checks = TARGET_DIF_CHECK_GUARD; in sbc_set_prot_op_checks()
705 sbc_check_prot(struct se_device *dev, struct se_cmd *cmd, unsigned char *cdb, in sbc_check_prot() argument
709 int sp_ops = cmd->se_sess->sup_prot_ops; in sbc_check_prot()
713 if (!cmd->t_prot_sg || !cmd->t_prot_nents) { in sbc_check_prot()
715 !dev->dev_attrib.pi_prot_type && !cmd->se_sess->sess_prot_type)) { in sbc_check_prot()
720 if (cmd->prot_pto) in sbc_check_prot()
726 cmd->reftag_seed = 0xffffffff; in sbc_check_prot()
732 cmd->reftag_seed = cmd->t_task_lba; in sbc_check_prot()
735 cmd->reftag_seed = cmd->t_task_lba; in sbc_check_prot()
747 if (fabric_prot && cmd->se_sess->sess_prot_type) { in sbc_check_prot()
748 pi_prot_type = cmd->se_sess->sess_prot_type; in sbc_check_prot()
760 if (sbc_set_prot_op_checks(protect, fabric_prot, pi_prot_type, is_write, cmd)) in sbc_check_prot()
763 cmd->prot_type = pi_prot_type; in sbc_check_prot()
764 cmd->prot_length = dev->prot_length * sectors; in sbc_check_prot()
773 cmd->data_length = sectors * dev->dev_attrib.block_size; in sbc_check_prot()
777 __func__, cmd->prot_type, cmd->data_length, cmd->prot_length, in sbc_check_prot()
778 cmd->prot_op, cmd->prot_checks); in sbc_check_prot()
784 sbc_check_dpofua(struct se_device *dev, struct se_cmd *cmd, unsigned char *cdb) in sbc_check_dpofua() argument
801 cmd->se_cmd_flags |= SCF_FUA; in sbc_check_dpofua()
807 sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) in sbc_parse_cdb() argument
809 struct se_device *dev = cmd->se_dev; in sbc_parse_cdb()
810 unsigned char *cdb = cmd->t_task_cdb; in sbc_parse_cdb()
815 cmd->protocol_data = ops; in sbc_parse_cdb()
820 cmd->t_task_lba = transport_lba_21(cdb); in sbc_parse_cdb()
821 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
822 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
826 cmd->t_task_lba = transport_lba_32(cdb); in sbc_parse_cdb()
828 if (sbc_check_dpofua(dev, cmd, cdb)) in sbc_parse_cdb()
831 ret = sbc_check_prot(dev, cmd, cdb, sectors, false); in sbc_parse_cdb()
835 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
836 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
840 cmd->t_task_lba = transport_lba_32(cdb); in sbc_parse_cdb()
842 if (sbc_check_dpofua(dev, cmd, cdb)) in sbc_parse_cdb()
845 ret = sbc_check_prot(dev, cmd, cdb, sectors, false); in sbc_parse_cdb()
849 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
850 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
854 cmd->t_task_lba = transport_lba_64(cdb); in sbc_parse_cdb()
856 if (sbc_check_dpofua(dev, cmd, cdb)) in sbc_parse_cdb()
859 ret = sbc_check_prot(dev, cmd, cdb, sectors, false); in sbc_parse_cdb()
863 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
864 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
868 cmd->t_task_lba = transport_lba_21(cdb); in sbc_parse_cdb()
869 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
870 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
875 cmd->t_task_lba = transport_lba_32(cdb); in sbc_parse_cdb()
877 if (sbc_check_dpofua(dev, cmd, cdb)) in sbc_parse_cdb()
880 ret = sbc_check_prot(dev, cmd, cdb, sectors, true); in sbc_parse_cdb()
884 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
885 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
889 cmd->t_task_lba = transport_lba_32(cdb); in sbc_parse_cdb()
891 if (sbc_check_dpofua(dev, cmd, cdb)) in sbc_parse_cdb()
894 ret = sbc_check_prot(dev, cmd, cdb, sectors, true); in sbc_parse_cdb()
898 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
899 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
904 cmd->t_task_lba = transport_lba_64(cdb); in sbc_parse_cdb()
906 if (sbc_check_dpofua(dev, cmd, cdb)) in sbc_parse_cdb()
909 ret = sbc_check_prot(dev, cmd, cdb, sectors, true); in sbc_parse_cdb()
913 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
914 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
917 if (cmd->data_direction != DMA_TO_DEVICE || in sbc_parse_cdb()
918 !(cmd->se_cmd_flags & SCF_BIDI)) in sbc_parse_cdb()
922 if (sbc_check_dpofua(dev, cmd, cdb)) in sbc_parse_cdb()
925 cmd->t_task_lba = transport_lba_32(cdb); in sbc_parse_cdb()
926 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
931 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
932 cmd->transport_complete_callback = &xdreadwrite_callback; in sbc_parse_cdb()
941 if (sbc_check_dpofua(dev, cmd, cdb)) in sbc_parse_cdb()
947 cmd->t_task_lba = transport_lba_64_ext(cdb); in sbc_parse_cdb()
948 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; in sbc_parse_cdb()
954 cmd->execute_cmd = sbc_execute_rw; in sbc_parse_cdb()
955 cmd->transport_complete_callback = &xdreadwrite_callback; in sbc_parse_cdb()
965 size = sbc_get_size(cmd, 1); in sbc_parse_cdb()
966 cmd->t_task_lba = get_unaligned_be64(&cdb[12]); in sbc_parse_cdb()
968 ret = sbc_setup_write_same(cmd, &cdb[10], ops); in sbc_parse_cdb()
996 if (sbc_check_dpofua(dev, cmd, cdb)) in sbc_parse_cdb()
1003 size = 2 * sbc_get_size(cmd, sectors); in sbc_parse_cdb()
1004 cmd->t_task_lba = get_unaligned_be64(&cdb[2]); in sbc_parse_cdb()
1005 cmd->t_task_nolb = sectors; in sbc_parse_cdb()
1006 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB | SCF_COMPARE_AND_WRITE; in sbc_parse_cdb()
1007 cmd->execute_cmd = sbc_compare_and_write; in sbc_parse_cdb()
1008 cmd->transport_complete_callback = compare_and_write_callback; in sbc_parse_cdb()
1012 cmd->execute_cmd = sbc_emulate_readcapacity; in sbc_parse_cdb()
1015 switch (cmd->t_task_cdb[1] & 0x1f) { in sbc_parse_cdb()
1017 cmd->execute_cmd = sbc_emulate_readcapacity_16; in sbc_parse_cdb()
1020 cmd->execute_cmd = target_emulate_report_referrals; in sbc_parse_cdb()
1024 cmd->t_task_cdb[1] & 0x1f); in sbc_parse_cdb()
1033 cmd->t_task_lba = transport_lba_32(cdb); in sbc_parse_cdb()
1036 cmd->t_task_lba = transport_lba_64(cdb); in sbc_parse_cdb()
1039 cmd->execute_cmd = ops->execute_sync_cache; in sbc_parse_cdb()
1043 cmd->execute_cmd = sbc_emulate_noop; in sbc_parse_cdb()
1055 cmd->execute_cmd = sbc_execute_unmap; in sbc_parse_cdb()
1064 size = sbc_get_size(cmd, 1); in sbc_parse_cdb()
1065 cmd->t_task_lba = get_unaligned_be64(&cdb[2]); in sbc_parse_cdb()
1067 ret = sbc_setup_write_same(cmd, &cdb[1], ops); in sbc_parse_cdb()
1078 size = sbc_get_size(cmd, 1); in sbc_parse_cdb()
1079 cmd->t_task_lba = get_unaligned_be32(&cdb[2]); in sbc_parse_cdb()
1085 ret = sbc_setup_write_same(cmd, &cdb[1], ops); in sbc_parse_cdb()
1094 cmd->t_task_lba = transport_lba_32(cdb); in sbc_parse_cdb()
1097 cmd->t_task_lba = transport_lba_64(cdb); in sbc_parse_cdb()
1099 cmd->execute_cmd = sbc_emulate_noop; in sbc_parse_cdb()
1111 cmd->execute_cmd = sbc_emulate_noop; in sbc_parse_cdb()
1115 cmd->execute_cmd = sbc_emulate_startstop; in sbc_parse_cdb()
1118 ret = spc_parse_cdb(cmd, &size); in sbc_parse_cdb()
1124 if (!cmd->execute_cmd) in sbc_parse_cdb()
1127 if (cmd->se_cmd_flags & SCF_SCSI_DATA_CDB) { in sbc_parse_cdb()
1131 if (((cmd->t_task_lba + sectors) < cmd->t_task_lba) || in sbc_parse_cdb()
1132 ((cmd->t_task_lba + sectors) > end_lba)) { in sbc_parse_cdb()
1135 end_lba, cmd->t_task_lba, sectors); in sbc_parse_cdb()
1139 if (!(cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE)) in sbc_parse_cdb()
1140 size = sbc_get_size(cmd, sectors); in sbc_parse_cdb()
1143 return target_cmd_size_check(cmd, size); in sbc_parse_cdb()
1154 sbc_execute_unmap(struct se_cmd *cmd) in sbc_execute_unmap() argument
1156 struct sbc_ops *ops = cmd->protocol_data; in sbc_execute_unmap()
1157 struct se_device *dev = cmd->se_dev; in sbc_execute_unmap()
1166 if (cmd->t_task_cdb[1]) in sbc_execute_unmap()
1169 if (cmd->data_length == 0) { in sbc_execute_unmap()
1170 target_complete_cmd(cmd, SAM_STAT_GOOD); in sbc_execute_unmap()
1174 if (cmd->data_length < 8) { in sbc_execute_unmap()
1176 cmd->data_length); in sbc_execute_unmap()
1180 buf = transport_kmap_data_sg(cmd); in sbc_execute_unmap()
1187 size = cmd->data_length - 8; in sbc_execute_unmap()
1190 cmd->data_length, bd_dl); in sbc_execute_unmap()
1221 ret = ops->execute_unmap(cmd, lba, range); in sbc_execute_unmap()
1231 transport_kunmap_data_sg(cmd); in sbc_execute_unmap()
1233 target_complete_cmd(cmd, GOOD); in sbc_execute_unmap()
1238 sbc_dif_generate(struct se_cmd *cmd) in sbc_dif_generate() argument
1240 struct se_device *dev = cmd->se_dev; in sbc_dif_generate()
1242 struct scatterlist *dsg = cmd->t_data_sg, *psg; in sbc_dif_generate()
1243 sector_t sector = cmd->t_task_lba; in sbc_dif_generate()
1248 for_each_sg(cmd->t_prot_sg, psg, cmd->t_prot_nents, i) { in sbc_dif_generate()
1286 if (cmd->prot_type == TARGET_DIF_TYPE1_PROT) in sbc_dif_generate()
1292 (cmd->data_direction == DMA_TO_DEVICE) ? in sbc_dif_generate()
1306 sbc_dif_v1_verify(struct se_cmd *cmd, struct t10_pi_tuple *sdt, in sbc_dif_v1_verify() argument
1311 if (!(cmd->prot_checks & TARGET_DIF_CHECK_GUARD)) in sbc_dif_v1_verify()
1324 if (!(cmd->prot_checks & TARGET_DIF_CHECK_REFTAG)) in sbc_dif_v1_verify()
1327 if (cmd->prot_type == TARGET_DIF_TYPE1_PROT && in sbc_dif_v1_verify()
1335 if (cmd->prot_type == TARGET_DIF_TYPE2_PROT && in sbc_dif_v1_verify()
1346 void sbc_dif_copy_prot(struct se_cmd *cmd, unsigned int sectors, bool read, in sbc_dif_copy_prot() argument
1349 struct se_device *dev = cmd->se_dev; in sbc_dif_copy_prot()
1360 for_each_sg(cmd->t_prot_sg, psg, cmd->t_prot_nents, i) { in sbc_dif_copy_prot()
1392 sbc_dif_verify(struct se_cmd *cmd, sector_t start, unsigned int sectors, in sbc_dif_verify() argument
1395 struct se_device *dev = cmd->se_dev; in sbc_dif_verify()
1397 struct scatterlist *dsg = cmd->t_data_sg; in sbc_dif_verify()
1454 rc = sbc_dif_v1_verify(cmd, sdt, crc, sector, ei_lba); in sbc_dif_verify()
1458 cmd->bad_sector = sector; in sbc_dif_verify()