Commit 1a1fc0b8 authored by Mike Christie's avatar Mike Christie Committed by Nicholas Bellinger

tcmu: simplify scatter_data_area error handling

scatter_data_area always returns 0, so stop checking
for errors.
Signed-off-by: default avatarMike Christie <mchristi@redhat.com>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 810b8153
...@@ -520,7 +520,7 @@ static inline size_t iov_tail(struct iovec *iov) ...@@ -520,7 +520,7 @@ static inline size_t iov_tail(struct iovec *iov)
return (size_t)iov->iov_base + iov->iov_len; return (size_t)iov->iov_base + iov->iov_len;
} }
static int scatter_data_area(struct tcmu_dev *udev, static void scatter_data_area(struct tcmu_dev *udev,
struct tcmu_cmd *tcmu_cmd, struct scatterlist *data_sg, struct tcmu_cmd *tcmu_cmd, struct scatterlist *data_sg,
unsigned int data_nents, struct iovec **iov, unsigned int data_nents, struct iovec **iov,
int *iov_cnt, bool copy_data) int *iov_cnt, bool copy_data)
...@@ -573,8 +573,6 @@ static int scatter_data_area(struct tcmu_dev *udev, ...@@ -573,8 +573,6 @@ static int scatter_data_area(struct tcmu_dev *udev,
} }
if (to) if (to)
kunmap_atomic(to); kunmap_atomic(to);
return 0;
} }
static void gather_data_area(struct tcmu_dev *udev, struct tcmu_cmd *cmd, static 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,33 +862,18 @@ tcmu_queue_cmd_ring(struct tcmu_cmd *tcmu_cmd)
iov_cnt = 0; iov_cnt = 0;
copy_to_data_area = (se_cmd->data_direction == DMA_TO_DEVICE copy_to_data_area = (se_cmd->data_direction == DMA_TO_DEVICE
|| se_cmd->se_cmd_flags & SCF_BIDI); || se_cmd->se_cmd_flags & SCF_BIDI);
ret = scatter_data_area(udev, tcmu_cmd, se_cmd->t_data_sg, scatter_data_area(udev, tcmu_cmd, se_cmd->t_data_sg,
se_cmd->t_data_nents, &iov, &iov_cnt, se_cmd->t_data_nents, &iov, &iov_cnt,
copy_to_data_area); copy_to_data_area);
if (ret) {
tcmu_cmd_free_data(tcmu_cmd, tcmu_cmd->dbi_cnt);
mutex_unlock(&udev->cmdr_lock);
pr_err("tcmu: alloc and scatter data failed\n");
return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
}
entry->req.iov_cnt = iov_cnt; entry->req.iov_cnt = iov_cnt;
/* Handle BIDI commands */ /* Handle BIDI commands */
iov_cnt = 0; iov_cnt = 0;
if (se_cmd->se_cmd_flags & SCF_BIDI) { if (se_cmd->se_cmd_flags & SCF_BIDI) {
iov++; iov++;
ret = scatter_data_area(udev, tcmu_cmd, scatter_data_area(udev, tcmu_cmd, se_cmd->t_bidi_data_sg,
se_cmd->t_bidi_data_sg, se_cmd->t_bidi_data_nents, &iov, &iov_cnt,
se_cmd->t_bidi_data_nents, false);
&iov, &iov_cnt, false);
if (ret) {
tcmu_cmd_free_data(tcmu_cmd, tcmu_cmd->dbi_cnt);
mutex_unlock(&udev->cmdr_lock);
pr_err("tcmu: alloc and scatter bidi data failed\n");
return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
}
} }
entry->req.iov_bidi_cnt = iov_cnt; entry->req.iov_bidi_cnt = iov_cnt;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment