|
|
|
@ -563,7 +563,7 @@ static int nbd_send_cmd(struct nbd_device *nbd, struct nbd_cmd *cmd, int index)
|
|
|
|
|
u32 nbd_cmd_flags = 0;
|
|
|
|
|
int sent = nsock->sent, skip = 0;
|
|
|
|
|
|
|
|
|
|
iov_iter_kvec(&from, WRITE, &iov, 1, sizeof(request));
|
|
|
|
|
iov_iter_kvec(&from, ITER_SOURCE, &iov, 1, sizeof(request));
|
|
|
|
|
|
|
|
|
|
type = req_to_nbd_cmd_type(req);
|
|
|
|
|
if (type == U32_MAX)
|
|
|
|
@ -649,7 +649,7 @@ send_pages:
|
|
|
|
|
|
|
|
|
|
dev_dbg(nbd_to_dev(nbd), "request %p: sending %d bytes data\n",
|
|
|
|
|
req, bvec.bv_len);
|
|
|
|
|
iov_iter_bvec(&from, WRITE, &bvec, 1, bvec.bv_len);
|
|
|
|
|
iov_iter_bvec(&from, ITER_SOURCE, &bvec, 1, bvec.bv_len);
|
|
|
|
|
if (skip) {
|
|
|
|
|
if (skip >= iov_iter_count(&from)) {
|
|
|
|
|
skip -= iov_iter_count(&from);
|
|
|
|
@ -701,7 +701,7 @@ static int nbd_read_reply(struct nbd_device *nbd, int index,
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
reply->magic = 0;
|
|
|
|
|
iov_iter_kvec(&to, READ, &iov, 1, sizeof(*reply));
|
|
|
|
|
iov_iter_kvec(&to, ITER_DEST, &iov, 1, sizeof(*reply));
|
|
|
|
|
result = sock_xmit(nbd, index, 0, &to, MSG_WAITALL, NULL);
|
|
|
|
|
if (result < 0) {
|
|
|
|
|
if (!nbd_disconnected(nbd->config))
|
|
|
|
@ -790,7 +790,7 @@ static struct nbd_cmd *nbd_handle_reply(struct nbd_device *nbd, int index,
|
|
|
|
|
struct iov_iter to;
|
|
|
|
|
|
|
|
|
|
rq_for_each_segment(bvec, req, iter) {
|
|
|
|
|
iov_iter_bvec(&to, READ, &bvec, 1, bvec.bv_len);
|
|
|
|
|
iov_iter_bvec(&to, ITER_DEST, &bvec, 1, bvec.bv_len);
|
|
|
|
|
result = sock_xmit(nbd, index, 0, &to, MSG_WAITALL, NULL);
|
|
|
|
|
if (result < 0) {
|
|
|
|
|
dev_err(disk_to_dev(nbd->disk), "Receive data failed (result %d)\n",
|
|
|
|
@ -1267,7 +1267,7 @@ static void send_disconnects(struct nbd_device *nbd)
|
|
|
|
|
for (i = 0; i < config->num_connections; i++) {
|
|
|
|
|
struct nbd_sock *nsock = config->socks[i];
|
|
|
|
|
|
|
|
|
|
iov_iter_kvec(&from, WRITE, &iov, 1, sizeof(request));
|
|
|
|
|
iov_iter_kvec(&from, ITER_SOURCE, &iov, 1, sizeof(request));
|
|
|
|
|
mutex_lock(&nsock->tx_lock);
|
|
|
|
|
ret = sock_xmit(nbd, i, 1, &from, 0, NULL);
|
|
|
|
|
if (ret < 0)
|
|
|
|
|