Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client

Pull last minute Ceph fixes from Sage Weil:
"The important one fixes a bug in the socket failure handling behavior
that was turned up in some recent failure injection testing. The
other two are minor bug fixes."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
rbd: endian bug in rbd_req_cb()
rbd: Fix ceph_snap_context size calculation
libceph: fix messenger retry

+10 -18
+2 -2
drivers/block/rbd.c
··· 499 499 / sizeof (*ondisk)) 500 500 return -EINVAL; 501 501 header->snapc = kmalloc(sizeof(struct ceph_snap_context) + 502 - snap_count * sizeof (*ondisk), 502 + snap_count * sizeof(u64), 503 503 gfp_flags); 504 504 if (!header->snapc) 505 505 return -ENOMEM; ··· 977 977 op = (void *)(replyhead + 1); 978 978 rc = le32_to_cpu(replyhead->result); 979 979 bytes = le64_to_cpu(op->extent.length); 980 - read_op = (le32_to_cpu(op->op) == CEPH_OSD_OP_READ); 980 + read_op = (le16_to_cpu(op->op) == CEPH_OSD_OP_READ); 981 981 982 982 dout("rbd_req_cb bytes=%lld readop=%d rc=%d\n", bytes, read_op, rc); 983 983
+2 -10
include/linux/ceph/messenger.h
··· 163 163 164 164 /* connection negotiation temps */ 165 165 char in_banner[CEPH_BANNER_MAX_LEN]; 166 - union { 167 - struct { /* outgoing connection */ 168 - struct ceph_msg_connect out_connect; 169 - struct ceph_msg_connect_reply in_reply; 170 - }; 171 - struct { /* incoming */ 172 - struct ceph_msg_connect in_connect; 173 - struct ceph_msg_connect_reply out_reply; 174 - }; 175 - }; 166 + struct ceph_msg_connect out_connect; 167 + struct ceph_msg_connect_reply in_reply; 176 168 struct ceph_entity_addr actual_peer_addr; 177 169 178 170 /* message out temps */
+6 -6
net/ceph/messenger.c
··· 1423 1423 * dropped messages. 1424 1424 */ 1425 1425 dout("process_connect got RESET peer seq %u\n", 1426 - le32_to_cpu(con->in_connect.connect_seq)); 1426 + le32_to_cpu(con->in_reply.connect_seq)); 1427 1427 pr_err("%s%lld %s connection reset\n", 1428 1428 ENTITY_NAME(con->peer_name), 1429 1429 ceph_pr_addr(&con->peer_addr.in_addr)); ··· 1450 1450 * If we sent a smaller connect_seq than the peer has, try 1451 1451 * again with a larger value. 1452 1452 */ 1453 - dout("process_connect got RETRY my seq = %u, peer_seq = %u\n", 1453 + dout("process_connect got RETRY_SESSION my seq %u, peer %u\n", 1454 1454 le32_to_cpu(con->out_connect.connect_seq), 1455 - le32_to_cpu(con->in_connect.connect_seq)); 1456 - con->connect_seq = le32_to_cpu(con->in_connect.connect_seq); 1455 + le32_to_cpu(con->in_reply.connect_seq)); 1456 + con->connect_seq = le32_to_cpu(con->in_reply.connect_seq); 1457 1457 ceph_con_out_kvec_reset(con); 1458 1458 ret = prepare_write_connect(con); 1459 1459 if (ret < 0) ··· 1468 1468 */ 1469 1469 dout("process_connect got RETRY_GLOBAL my %u peer_gseq %u\n", 1470 1470 con->peer_global_seq, 1471 - le32_to_cpu(con->in_connect.global_seq)); 1471 + le32_to_cpu(con->in_reply.global_seq)); 1472 1472 get_global_seq(con->msgr, 1473 - le32_to_cpu(con->in_connect.global_seq)); 1473 + le32_to_cpu(con->in_reply.global_seq)); 1474 1474 ceph_con_out_kvec_reset(con); 1475 1475 ret = prepare_write_connect(con); 1476 1476 if (ret < 0)