Lines Matching refs:cmd

291 static void iblock_complete_cmd(struct se_cmd *cmd)
293 struct iblock_req *ibr = cmd->priv;
304 target_complete_cmd(cmd, status);
310 struct se_cmd *cmd = bio->bi_private;
311 struct iblock_req *ibr = cmd->priv;
331 iblock_complete_cmd(cmd);
335 iblock_get_bio(struct se_cmd *cmd, sector_t lba, u32 sg_num)
337 struct iblock_dev *ib_dev = IBLOCK_DEV(cmd->se_dev);
354 bio->bi_private = cmd;
374 struct se_cmd *cmd = bio->bi_private;
379 if (cmd) {
381 target_complete_cmd(cmd, SAM_STAT_CHECK_CONDITION);
383 target_complete_cmd(cmd, SAM_STAT_GOOD);
394 iblock_execute_sync_cache(struct se_cmd *cmd)
396 struct iblock_dev *ib_dev = IBLOCK_DEV(cmd->se_dev);
397 int immed = (cmd->t_task_cdb[1] & 0x2);
405 target_complete_cmd(cmd, SAM_STAT_GOOD);
411 bio->bi_private = cmd;
417 iblock_do_unmap(struct se_cmd *cmd, void *priv,
433 iblock_execute_unmap(struct se_cmd *cmd)
435 struct block_device *bdev = IBLOCK_DEV(cmd->se_dev)->ibd_bd;
437 return sbc_execute_unmap(cmd, iblock_do_unmap, bdev);
441 iblock_execute_write_same_unmap(struct se_cmd *cmd)
443 struct block_device *bdev = IBLOCK_DEV(cmd->se_dev)->ibd_bd;
444 sector_t lba = cmd->t_task_lba;
445 sector_t nolb = sbc_get_write_same_sectors(cmd);
448 ret = iblock_do_unmap(cmd, bdev, lba, nolb);
452 target_complete_cmd(cmd, GOOD);
457 iblock_execute_write_same(struct se_cmd *cmd)
463 sector_t block_lba = cmd->t_task_lba;
464 sector_t sectors = sbc_get_write_same_sectors(cmd);
466 sg = &cmd->t_data_sg[0];
468 if (cmd->t_data_nents > 1 ||
469 sg->length != cmd->se_dev->dev_attrib.block_size) {
471 " block_size: %u\n", cmd->t_data_nents, sg->length,
472 cmd->se_dev->dev_attrib.block_size);
479 cmd->priv = ibr;
481 bio = iblock_get_bio(cmd, block_lba, 1);
494 bio = iblock_get_bio(cmd, block_lba, 1);
624 iblock_alloc_bip(struct se_cmd *cmd, struct bio *bio)
626 struct se_device *dev = cmd->se_dev;
639 bip = bio_integrity_alloc(bio, GFP_NOIO, cmd->t_prot_nents);
645 bip->bip_iter.bi_size = (cmd->data_length / dev->dev_attrib.block_size) *
652 for_each_sg(cmd->t_prot_sg, sg, cmd->t_prot_nents, i) {
669 iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
672 struct se_device *dev = cmd->se_dev;
691 if (cmd->se_cmd_flags & SCF_FUA)
709 block_lba = (cmd->t_task_lba << 3);
711 block_lba = (cmd->t_task_lba << 2);
713 block_lba = (cmd->t_task_lba << 1);
715 block_lba = cmd->t_task_lba;
725 cmd->priv = ibr;
729 iblock_complete_cmd(cmd);
733 bio = iblock_get_bio(cmd, block_lba, sgl_nents);
757 bio = iblock_get_bio(cmd, block_lba, sg_num);
771 if (cmd->prot_type) {
772 int rc = iblock_alloc_bip(cmd, bio_start);
778 iblock_complete_cmd(cmd);
847 iblock_parse_cdb(struct se_cmd *cmd)
849 return sbc_parse_cdb(cmd, &iblock_sbc_ops);