diff options
Diffstat (limited to 'drivers/target')
-rw-r--r-- | drivers/target/iscsi/iscsi_target_util.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c index ce87ce9bdb9c..7c6a95bcb35e 100644 --- a/drivers/target/iscsi/iscsi_target_util.c +++ b/drivers/target/iscsi/iscsi_target_util.c | |||
@@ -1326,21 +1326,19 @@ static int iscsit_do_rx_data( | |||
1326 | struct iscsi_conn *conn, | 1326 | struct iscsi_conn *conn, |
1327 | struct iscsi_data_count *count) | 1327 | struct iscsi_data_count *count) |
1328 | { | 1328 | { |
1329 | int data = count->data_length, rx_loop = 0, total_rx = 0, iov_len; | 1329 | int data = count->data_length, rx_loop = 0, total_rx = 0; |
1330 | struct kvec *iov_p; | ||
1331 | struct msghdr msg; | 1330 | struct msghdr msg; |
1332 | 1331 | ||
1333 | if (!conn || !conn->sock || !conn->conn_ops) | 1332 | if (!conn || !conn->sock || !conn->conn_ops) |
1334 | return -1; | 1333 | return -1; |
1335 | 1334 | ||
1336 | memset(&msg, 0, sizeof(struct msghdr)); | 1335 | memset(&msg, 0, sizeof(struct msghdr)); |
1337 | 1336 | iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, | |
1338 | iov_p = count->iov; | 1337 | count->iov, count->iov_count, data); |
1339 | iov_len = count->iov_count; | ||
1340 | 1338 | ||
1341 | while (total_rx < data) { | 1339 | while (total_rx < data) { |
1342 | rx_loop = kernel_recvmsg(conn->sock, &msg, iov_p, iov_len, | 1340 | rx_loop = sock_recvmsg(conn->sock, &msg, |
1343 | (data - total_rx), MSG_WAITALL); | 1341 | (data - total_rx), MSG_WAITALL); |
1344 | if (rx_loop <= 0) { | 1342 | if (rx_loop <= 0) { |
1345 | pr_debug("rx_loop: %d total_rx: %d\n", | 1343 | pr_debug("rx_loop: %d total_rx: %d\n", |
1346 | rx_loop, total_rx); | 1344 | rx_loop, total_rx); |