Lines Matching +full:1 +full:v1

33 	iov_iter_kvec(&msg.msg_iter, ITER_DEST, &iov, 1, len);  in ceph_tcp_recvmsg()
49 iov_iter_bvec(&msg.msg_iter, ITER_DEST, &bvec, 1, length); in ceph_tcp_recvpage()
101 iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, &bvec, 1, size); in ceph_tcp_sendpage()
112 BUG_ON(con->v1.out_skip); in con_out_kvec_reset()
114 con->v1.out_kvec_left = 0; in con_out_kvec_reset()
115 con->v1.out_kvec_bytes = 0; in con_out_kvec_reset()
116 con->v1.out_kvec_cur = &con->v1.out_kvec[0]; in con_out_kvec_reset()
122 int index = con->v1.out_kvec_left; in con_out_kvec_add()
124 BUG_ON(con->v1.out_skip); in con_out_kvec_add()
125 BUG_ON(index >= ARRAY_SIZE(con->v1.out_kvec)); in con_out_kvec_add()
127 con->v1.out_kvec[index].iov_len = size; in con_out_kvec_add()
128 con->v1.out_kvec[index].iov_base = data; in con_out_kvec_add()
129 con->v1.out_kvec_left++; in con_out_kvec_add()
130 con->v1.out_kvec_bytes += size; in con_out_kvec_add()
142 if (con->v1.out_kvec_bytes > 0) { in con_out_kvec_skip()
143 skip = con->v1.out_kvec_cur[con->v1.out_kvec_left - 1].iov_len; in con_out_kvec_skip()
144 BUG_ON(con->v1.out_kvec_bytes < skip); in con_out_kvec_skip()
145 BUG_ON(!con->v1.out_kvec_left); in con_out_kvec_skip()
146 con->v1.out_kvec_bytes -= skip; in con_out_kvec_skip()
147 con->v1.out_kvec_left--; in con_out_kvec_skip()
187 con->v1.out_more = m->more_to_follow; in prepare_write_message_footer()
188 con->v1.out_msg_done = true; in prepare_write_message_footer()
200 con->v1.out_msg_done = false; in prepare_write_message()
207 con->v1.out_temp_ack = cpu_to_le64(con->in_seq_acked); in prepare_write_message()
208 con_out_kvec_add(con, sizeof(con->v1.out_temp_ack), in prepare_write_message()
209 &con->v1.out_temp_ack); in prepare_write_message()
221 con_out_kvec_add(con, sizeof(con->v1.out_hdr), &con->v1.out_hdr); in prepare_write_message()
231 memcpy(&con->v1.out_hdr, &m->hdr, sizeof(con->v1.out_hdr)); in prepare_write_message()
251 con->v1.out_more = 1; /* data + footer will follow */ in prepare_write_message()
273 con->v1.out_temp_ack = cpu_to_le64(con->in_seq_acked); in prepare_write_ack()
274 con_out_kvec_add(con, sizeof(con->v1.out_temp_ack), in prepare_write_ack()
275 &con->v1.out_temp_ack); in prepare_write_ack()
277 con->v1.out_more = 1; /* more will follow.. eventually.. */ in prepare_write_ack()
292 con->v1.out_temp_ack = cpu_to_le64(con->in_seq_acked); in prepare_write_seq()
293 con_out_kvec_add(con, sizeof(con->v1.out_temp_ack), in prepare_write_seq()
294 &con->v1.out_temp_ack); in prepare_write_seq()
311 ceph_encode_timespec64(&con->v1.out_temp_keepalive2, &now); in prepare_write_keepalive()
312 con_out_kvec_add(con, sizeof(con->v1.out_temp_keepalive2), in prepare_write_keepalive()
313 &con->v1.out_temp_keepalive2); in prepare_write_keepalive()
330 con->v1.auth = NULL; in get_connect_authorizer()
331 con->v1.out_connect.authorizer_protocol = CEPH_AUTH_UNKNOWN; in get_connect_authorizer()
332 con->v1.out_connect.authorizer_len = 0; in get_connect_authorizer()
336 auth = con->ops->get_authorizer(con, &auth_proto, con->v1.auth_retry); in get_connect_authorizer()
340 con->v1.auth = auth; in get_connect_authorizer()
341 con->v1.out_connect.authorizer_protocol = cpu_to_le32(auth_proto); in get_connect_authorizer()
342 con->v1.out_connect.authorizer_len = in get_connect_authorizer()
356 con->v1.out_more = 0; in prepare_write_banner()
362 con_out_kvec_add(con, sizeof(con->v1.out_connect), in __prepare_write_connect()
363 &con->v1.out_connect); in __prepare_write_connect()
364 if (con->v1.auth) in __prepare_write_connect()
365 con_out_kvec_add(con, con->v1.auth->authorizer_buf_len, in __prepare_write_connect()
366 con->v1.auth->authorizer_buf); in __prepare_write_connect()
368 con->v1.out_more = 0; in __prepare_write_connect()
393 con->v1.connect_seq, global_seq, proto); in prepare_write_connect()
395 con->v1.out_connect.features = in prepare_write_connect()
397 con->v1.out_connect.host_type = cpu_to_le32(CEPH_ENTITY_TYPE_CLIENT); in prepare_write_connect()
398 con->v1.out_connect.connect_seq = cpu_to_le32(con->v1.connect_seq); in prepare_write_connect()
399 con->v1.out_connect.global_seq = cpu_to_le32(global_seq); in prepare_write_connect()
400 con->v1.out_connect.protocol_version = cpu_to_le32(proto); in prepare_write_connect()
401 con->v1.out_connect.flags = 0; in prepare_write_connect()
413 * 1 -> done
421 dout("write_partial_kvec %p %d left\n", con, con->v1.out_kvec_bytes); in write_partial_kvec()
422 while (con->v1.out_kvec_bytes > 0) { in write_partial_kvec()
423 ret = ceph_tcp_sendmsg(con->sock, con->v1.out_kvec_cur, in write_partial_kvec()
424 con->v1.out_kvec_left, in write_partial_kvec()
425 con->v1.out_kvec_bytes, in write_partial_kvec()
426 con->v1.out_more); in write_partial_kvec()
429 con->v1.out_kvec_bytes -= ret; in write_partial_kvec()
430 if (!con->v1.out_kvec_bytes) in write_partial_kvec()
434 while (ret >= con->v1.out_kvec_cur->iov_len) { in write_partial_kvec()
435 BUG_ON(!con->v1.out_kvec_left); in write_partial_kvec()
436 ret -= con->v1.out_kvec_cur->iov_len; in write_partial_kvec()
437 con->v1.out_kvec_cur++; in write_partial_kvec()
438 con->v1.out_kvec_left--; in write_partial_kvec()
442 con->v1.out_kvec_cur->iov_len -= ret; in write_partial_kvec()
443 con->v1.out_kvec_cur->iov_base += ret; in write_partial_kvec()
446 con->v1.out_kvec_left = 0; in write_partial_kvec()
447 ret = 1; in write_partial_kvec()
450 con->v1.out_kvec_bytes, con->v1.out_kvec_left, ret); in write_partial_kvec()
457 * 1 -> done, footer is now queued in out_kvec[].
517 return 1; /* must return > 0 to indicate success */ in write_partial_message_data()
527 dout("%s %p %d left\n", __func__, con, con->v1.out_skip); in write_partial_skip()
528 while (con->v1.out_skip > 0) { in write_partial_skip()
529 size_t size = min(con->v1.out_skip, (int)PAGE_SIZE); in write_partial_skip()
535 con->v1.out_skip -= ret; in write_partial_skip()
537 ret = 1; in write_partial_skip()
548 con->v1.in_base_pos = 0; in prepare_read_banner()
554 con->v1.in_base_pos = 0; in prepare_read_connect()
560 con->v1.in_base_pos = 0; in prepare_read_ack()
566 con->v1.in_base_pos = 0; in prepare_read_seq()
567 con->v1.in_tag = CEPH_MSGR_TAG_SEQ; in prepare_read_seq()
573 con->v1.in_base_pos = 0; in prepare_read_tag()
574 con->v1.in_tag = CEPH_MSGR_TAG_READY; in prepare_read_tag()
580 con->v1.in_base_pos = 0; in prepare_read_keepalive_ack()
590 con->v1.in_base_pos = 0; in prepare_read_message()
598 while (con->v1.in_base_pos < end) { in read_partial()
599 int left = end - con->v1.in_base_pos; in read_partial()
604 con->v1.in_base_pos += ret; in read_partial()
606 return 1; in read_partial()
618 dout("read_partial_banner %p at %d\n", con, con->v1.in_base_pos); in read_partial_banner()
623 ret = read_partial(con, end, size, con->v1.in_banner); in read_partial_banner()
627 size = sizeof(con->v1.actual_peer_addr); in read_partial_banner()
629 ret = read_partial(con, end, size, &con->v1.actual_peer_addr); in read_partial_banner()
632 ceph_decode_banner_addr(&con->v1.actual_peer_addr); in read_partial_banner()
634 size = sizeof(con->v1.peer_addr_for_me); in read_partial_banner()
636 ret = read_partial(con, end, size, &con->v1.peer_addr_for_me); in read_partial_banner()
639 ceph_decode_banner_addr(&con->v1.peer_addr_for_me); in read_partial_banner()
651 dout("read_partial_connect %p at %d\n", con, con->v1.in_base_pos); in read_partial_connect()
653 size = sizeof(con->v1.in_reply); in read_partial_connect()
655 ret = read_partial(con, end, size, &con->v1.in_reply); in read_partial_connect()
659 if (con->v1.auth) { in read_partial_connect()
660 size = le32_to_cpu(con->v1.in_reply.authorizer_len); in read_partial_connect()
661 if (size > con->v1.auth->authorizer_reply_buf_len) { in read_partial_connect()
663 con->v1.auth->authorizer_reply_buf_len); in read_partial_connect()
670 con->v1.auth->authorizer_reply_buf); in read_partial_connect()
676 con, con->v1.in_reply.tag, in read_partial_connect()
677 le32_to_cpu(con->v1.in_reply.connect_seq), in read_partial_connect()
678 le32_to_cpu(con->v1.in_reply.global_seq)); in read_partial_connect()
688 if (memcmp(con->v1.in_banner, CEPH_BANNER, strlen(CEPH_BANNER))) { in verify_hello()
692 return -1; in verify_hello()
704 return -1; in process_banner()
711 if (memcmp(&con->peer_addr, &con->v1.actual_peer_addr, in process_banner()
713 !(ceph_addr_is_blank(&con->v1.actual_peer_addr) && in process_banner()
714 con->v1.actual_peer_addr.nonce == con->peer_addr.nonce)) { in process_banner()
718 ceph_pr_addr(&con->v1.actual_peer_addr), in process_banner()
719 le32_to_cpu(con->v1.actual_peer_addr.nonce)); in process_banner()
721 return -1; in process_banner()
729 &con->v1.peer_addr_for_me.in_addr, in process_banner()
730 sizeof(con->v1.peer_addr_for_me.in_addr)); in process_banner()
744 u64 server_feat = le64_to_cpu(con->v1.in_reply.features); in process_connect()
747 dout("process_connect on %p tag %d\n", con, con->v1.in_tag); in process_connect()
749 if (con->v1.auth) { in process_connect()
750 int len = le32_to_cpu(con->v1.in_reply.authorizer_len); in process_connect()
759 if (con->v1.in_reply.tag == in process_connect()
762 con, con->v1.auth->authorizer_reply_buf, len); in process_connect()
781 switch (con->v1.in_reply.tag) { in process_connect()
789 return -1; in process_connect()
796 le32_to_cpu(con->v1.out_connect.protocol_version), in process_connect()
797 le32_to_cpu(con->v1.in_reply.protocol_version)); in process_connect()
799 return -1; in process_connect()
802 con->v1.auth_retry++; in process_connect()
804 con->v1.auth_retry); in process_connect()
805 if (con->v1.auth_retry == 2) { in process_connect()
807 return -1; in process_connect()
825 le32_to_cpu(con->v1.in_reply.connect_seq)); in process_connect()
851 le32_to_cpu(con->v1.out_connect.connect_seq), in process_connect()
852 le32_to_cpu(con->v1.in_reply.connect_seq)); in process_connect()
853 con->v1.connect_seq = le32_to_cpu(con->v1.in_reply.connect_seq); in process_connect()
867 con->v1.peer_global_seq, in process_connect()
868 le32_to_cpu(con->v1.in_reply.global_seq)); in process_connect()
870 le32_to_cpu(con->v1.in_reply.global_seq)); in process_connect()
887 return -1; in process_connect()
892 con->v1.auth_retry = 0; /* we authenticated; clear flag */ in process_connect()
893 con->v1.peer_global_seq = in process_connect()
894 le32_to_cpu(con->v1.in_reply.global_seq); in process_connect()
895 con->v1.connect_seq++; in process_connect()
898 con->v1.peer_global_seq, in process_connect()
899 le32_to_cpu(con->v1.in_reply.connect_seq), in process_connect()
900 con->v1.connect_seq); in process_connect()
901 WARN_ON(con->v1.connect_seq != in process_connect()
902 le32_to_cpu(con->v1.in_reply.connect_seq)); in process_connect()
904 if (con->v1.in_reply.flags & CEPH_MSG_CONNECT_LOSSY) in process_connect()
909 if (con->v1.in_reply.tag == CEPH_MSGR_TAG_SEQ) { in process_connect()
925 return -1; in process_connect()
929 return -1; in process_connect()
939 int size = sizeof(con->v1.in_temp_ack); in read_partial_ack()
942 return read_partial(con, end, size, &con->v1.in_temp_ack); in read_partial_ack()
950 u64 ack = le64_to_cpu(con->v1.in_temp_ack); in process_ack()
952 if (con->v1.in_tag == CEPH_MSGR_TAG_ACK) in process_ack()
980 return 1; in read_partial_message_chunk()
1023 return 1; in read_partial_sparse_msg_extent()
1031 int ret = 1; in read_partial_sparse_msg_data()
1037 if (con->v1.in_sr_kvec.iov_base) in read_partial_sparse_msg_data()
1039 &con->v1.in_sr_kvec, in read_partial_sparse_msg_data()
1040 con->v1.in_sr_len, in read_partial_sparse_msg_data()
1047 memset(&con->v1.in_sr_kvec, 0, sizeof(con->v1.in_sr_kvec)); in read_partial_sparse_msg_data()
1049 (char **)&con->v1.in_sr_kvec.iov_base); in read_partial_sparse_msg_data()
1051 ret = ret ? ret : 1; /* must return > 0 to indicate success */ in read_partial_sparse_msg_data()
1054 con->v1.in_sr_len = ret; in read_partial_sparse_msg_data()
1097 return 1; /* must return > 0 to indicate success */ in read_partial_msg_data()
1137 return 1; /* must return > 0 to indicate success */ in read_partial_msg_data_bounce()
1158 size = sizeof(con->v1.in_hdr); in read_partial_message()
1160 ret = read_partial(con, end, size, &con->v1.in_hdr); in read_partial_message()
1164 crc = crc32c(0, &con->v1.in_hdr, offsetof(struct ceph_msg_header, crc)); in read_partial_message()
1165 if (cpu_to_le32(crc) != con->v1.in_hdr.crc) { in read_partial_message()
1167 crc, con->v1.in_hdr.crc); in read_partial_message()
1171 front_len = le32_to_cpu(con->v1.in_hdr.front_len); in read_partial_message()
1174 middle_len = le32_to_cpu(con->v1.in_hdr.middle_len); in read_partial_message()
1177 data_len = le32_to_cpu(con->v1.in_hdr.data_len); in read_partial_message()
1182 seq = le64_to_cpu(con->v1.in_hdr.seq); in read_partial_message()
1183 if ((s64)seq - (s64)con->in_seq < 1) { in read_partial_message()
1187 seq, con->in_seq + 1); in read_partial_message()
1188 con->v1.in_base_pos = -front_len - middle_len - data_len - in read_partial_message()
1190 con->v1.in_tag = CEPH_MSGR_TAG_READY; in read_partial_message()
1191 return 1; in read_partial_message()
1192 } else if ((s64)seq - (s64)con->in_seq > 1) { in read_partial_message()
1194 seq, con->in_seq + 1); in read_partial_message()
1203 dout("got hdr type %d front %d data %d\n", con->v1.in_hdr.type, in read_partial_message()
1205 ret = ceph_con_in_msg_alloc(con, &con->v1.in_hdr, &skip); in read_partial_message()
1213 con->v1.in_base_pos = -front_len - middle_len - in read_partial_message()
1215 con->v1.in_tag = CEPH_MSGR_TAG_READY; in read_partial_message()
1217 return 1; in read_partial_message()
1304 return 1; /* done! */ in read_partial_message()
1316 return 1; in read_keepalive_ack()
1324 int ret = -1; in ceph_con_v1_try_read()
1335 dout("try_read tag %d in_base_pos %d\n", con->v1.in_tag, in ceph_con_v1_try_read()
1336 con->v1.in_base_pos); in ceph_con_v1_try_read()
1374 if (con->v1.in_base_pos < 0) { in ceph_con_v1_try_read()
1378 ret = ceph_tcp_recvmsg(con->sock, NULL, -con->v1.in_base_pos); in ceph_con_v1_try_read()
1381 dout("skipped %d / %d bytes\n", ret, -con->v1.in_base_pos); in ceph_con_v1_try_read()
1382 con->v1.in_base_pos += ret; in ceph_con_v1_try_read()
1383 if (con->v1.in_base_pos) in ceph_con_v1_try_read()
1386 if (con->v1.in_tag == CEPH_MSGR_TAG_READY) { in ceph_con_v1_try_read()
1390 ret = ceph_tcp_recvmsg(con->sock, &con->v1.in_tag, 1); in ceph_con_v1_try_read()
1393 dout("try_read got tag %d\n", con->v1.in_tag); in ceph_con_v1_try_read()
1394 switch (con->v1.in_tag) { in ceph_con_v1_try_read()
1412 if (con->v1.in_tag == CEPH_MSGR_TAG_MSG) { in ceph_con_v1_try_read()
1428 if (con->v1.in_tag == CEPH_MSGR_TAG_READY) in ceph_con_v1_try_read()
1435 if (con->v1.in_tag == CEPH_MSGR_TAG_ACK || in ceph_con_v1_try_read()
1436 con->v1.in_tag == CEPH_MSGR_TAG_SEQ) { in ceph_con_v1_try_read()
1447 if (con->v1.in_tag == CEPH_MSGR_TAG_KEEPALIVE2_ACK) { in ceph_con_v1_try_read()
1459 pr_err("try_read bad tag %d\n", con->v1.in_tag); in ceph_con_v1_try_read()
1461 ret = -1; in ceph_con_v1_try_read()
1472 int ret = 1; in ceph_con_v1_try_write()
1491 con->v1.in_tag = CEPH_MSGR_TAG_READY; in ceph_con_v1_try_write()
1502 dout("try_write out_kvec_bytes %d\n", con->v1.out_kvec_bytes); in ceph_con_v1_try_write()
1506 if (con->v1.out_kvec_left) { in ceph_con_v1_try_write()
1511 if (con->v1.out_skip) { in ceph_con_v1_try_write()
1520 if (con->v1.out_msg_done) { in ceph_con_v1_try_write()
1527 if (ret == 1) in ceph_con_v1_try_write()
1567 WARN_ON(con->v1.out_skip); in ceph_con_v1_revoke()
1569 if (con->v1.out_msg_done) { in ceph_con_v1_revoke()
1570 con->v1.out_skip += con_out_kvec_skip(con); in ceph_con_v1_revoke()
1573 con->v1.out_skip += sizeof_footer(con); in ceph_con_v1_revoke()
1577 con->v1.out_skip += msg->cursor.total_resid; in ceph_con_v1_revoke()
1579 con->v1.out_skip += con_out_kvec_skip(con); in ceph_con_v1_revoke()
1580 con->v1.out_skip += con_out_kvec_skip(con); in ceph_con_v1_revoke()
1583 con->v1.out_kvec_bytes, con->v1.out_skip); in ceph_con_v1_revoke()
1588 unsigned int front_len = le32_to_cpu(con->v1.in_hdr.front_len); in ceph_con_v1_revoke_incoming()
1589 unsigned int middle_len = le32_to_cpu(con->v1.in_hdr.middle_len); in ceph_con_v1_revoke_incoming()
1590 unsigned int data_len = le32_to_cpu(con->v1.in_hdr.data_len); in ceph_con_v1_revoke_incoming()
1593 con->v1.in_base_pos = con->v1.in_base_pos - in ceph_con_v1_revoke_incoming()
1600 con->v1.in_tag = CEPH_MSGR_TAG_READY; in ceph_con_v1_revoke_incoming()
1603 dout("%s con %p in_base_pos %d\n", __func__, con, con->v1.in_base_pos); in ceph_con_v1_revoke_incoming()
1608 return con->v1.connect_seq; in ceph_con_v1_opened()
1613 con->v1.connect_seq = 0; in ceph_con_v1_reset_session()
1614 con->v1.peer_global_seq = 0; in ceph_con_v1_reset_session()
1619 con->v1.out_skip = 0; in ceph_con_v1_reset_protocol()