summaryrefslogtreecommitdiffstats
path: root/drivers/target
diff options
context:
space:
mode:
authorMike Christie <mchristi@redhat.com>2017-11-28 13:40:34 -0500
committerNicholas Bellinger <nab@linux-iscsi.org>2018-01-12 18:07:15 -0500
commit1a1fc0b88e9019cb3b2f291bdcb2d03d38614690 (patch)
tree1475e1a96e04f77ceb9e5b1fcec1199bd0797fd9 /drivers/target
parent810b8153c4243d2012a6ec002ddd3bbc9a9ae8c2 (diff)
tcmu: simplify scatter_data_area error handling
scatter_data_area always returns 0, so stop checking for errors. Signed-off-by: Mike Christie <mchristi@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target')
-rw-r--r--drivers/target/target_core_user.c31
1 files changed, 7 insertions, 24 deletions
diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c
index c7541f090453..965f462eaa22 100644
--- a/drivers/target/target_core_user.c
+++ b/drivers/target/target_core_user.c
@@ -520,7 +520,7 @@ static inline size_t iov_tail(struct iovec *iov)
520 return (size_t)iov->iov_base + iov->iov_len; 520 return (size_t)iov->iov_base + iov->iov_len;
521} 521}
522 522
523static int scatter_data_area(struct tcmu_dev *udev, 523static void scatter_data_area(struct tcmu_dev *udev,
524 struct tcmu_cmd *tcmu_cmd, struct scatterlist *data_sg, 524 struct tcmu_cmd *tcmu_cmd, struct scatterlist *data_sg,
525 unsigned int data_nents, struct iovec **iov, 525 unsigned int data_nents, struct iovec **iov,
526 int *iov_cnt, bool copy_data) 526 int *iov_cnt, bool copy_data)
@@ -573,8 +573,6 @@ static int scatter_data_area(struct tcmu_dev *udev,
573 } 573 }
574 if (to) 574 if (to)
575 kunmap_atomic(to); 575 kunmap_atomic(to);
576
577 return 0;
578} 576}
579 577
580static void gather_data_area(struct tcmu_dev *udev, struct tcmu_cmd *cmd, 578static void gather_data_area(struct tcmu_dev *udev, struct tcmu_cmd *cmd,
@@ -864,33 +862,18 @@ tcmu_queue_cmd_ring(struct tcmu_cmd *tcmu_cmd)
864 iov_cnt = 0; 862 iov_cnt = 0;
865 copy_to_data_area = (se_cmd->data_direction == DMA_TO_DEVICE 863 copy_to_data_area = (se_cmd->data_direction == DMA_TO_DEVICE
866 || se_cmd->se_cmd_flags & SCF_BIDI); 864 || se_cmd->se_cmd_flags & SCF_BIDI);
867 ret = scatter_data_area(udev, tcmu_cmd, se_cmd->t_data_sg, 865 scatter_data_area(udev, tcmu_cmd, se_cmd->t_data_sg,
868 se_cmd->t_data_nents, &iov, &iov_cnt, 866 se_cmd->t_data_nents, &iov, &iov_cnt,
869 copy_to_data_area); 867 copy_to_data_area);
870 if (ret) {
871 tcmu_cmd_free_data(tcmu_cmd, tcmu_cmd->dbi_cnt);
872 mutex_unlock(&udev->cmdr_lock);
873
874 pr_err("tcmu: alloc and scatter data failed\n");
875 return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
876 }
877 entry->req.iov_cnt = iov_cnt; 868 entry->req.iov_cnt = iov_cnt;
878 869
879 /* Handle BIDI commands */ 870 /* Handle BIDI commands */
880 iov_cnt = 0; 871 iov_cnt = 0;
881 if (se_cmd->se_cmd_flags & SCF_BIDI) { 872 if (se_cmd->se_cmd_flags & SCF_BIDI) {
882 iov++; 873 iov++;
883 ret = scatter_data_area(udev, tcmu_cmd, 874 scatter_data_area(udev, tcmu_cmd, se_cmd->t_bidi_data_sg,
884 se_cmd->t_bidi_data_sg, 875 se_cmd->t_bidi_data_nents, &iov, &iov_cnt,
885 se_cmd->t_bidi_data_nents, 876 false);
886 &iov, &iov_cnt, false);
887 if (ret) {
888 tcmu_cmd_free_data(tcmu_cmd, tcmu_cmd->dbi_cnt);
889 mutex_unlock(&udev->cmdr_lock);
890
891 pr_err("tcmu: alloc and scatter bidi data failed\n");
892 return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
893 }
894 } 877 }
895 entry->req.iov_bidi_cnt = iov_cnt; 878 entry->req.iov_bidi_cnt = iov_cnt;
896 879