From fe8765e859cf8c783604a4a4ac5a17aa93eecfc7 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 8 Sep 2009 13:52:55 -0700 Subject: [PATCH] kclient: msgr zero in ceph_con_init --- src/kernel/messenger.c | 18 ++---------------- src/kernel/mon_client.c | 2 +- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/kernel/messenger.c b/src/kernel/messenger.c index b7f2bea7903d9..9c8f8ac2fa37d 100644 --- a/src/kernel/messenger.c +++ b/src/kernel/messenger.c @@ -14,24 +14,12 @@ /* * Ceph uses the messenger to exchange ceph_msg messages with other * hosts in the system. The messenger provides ordered and reliable - * delivery. It tolerates TCP disconnects by reconnecting (with + * delivery. We tolerate TCP disconnects by reconnecting (with * exponential backoff) in the case of a fault (disconnection, bad * crc, protocol error). Acks allow sent messages to be discarded by * the sender. - * - * The network topology is flat: there is no "client" or "server," and - * any node can initiate a connection (i.e., send messages) to any - * other node. There is a fair bit of complexity to handle the - * "connection race" case where two nodes are simultaneously - * connecting to each other so that the end result is a single - * session. - * - * The messenger can also send messages in "lossy" mode, where there - * is no error recovery or connect retry... the message is just - * dropped if something goes wrong. */ - /* static tag bytes (protocol control messages) */ static char tag_msg = CEPH_MSGR_TAG_MSG; static char tag_ack = CEPH_MSGR_TAG_ACK; @@ -313,19 +301,17 @@ void ceph_con_put(struct ceph_connection *con) /* * initialize a new connection. - * - * NOTE: assumes struct is initially zeroed! */ void ceph_con_init(struct ceph_messenger *msgr, struct ceph_connection *con) { dout("con_init %p\n", con); + memset(con, 0, sizeof(*con)); atomic_set(&con->nref, 1); con->msgr = msgr; spin_lock_init(&con->out_queue_lock); INIT_LIST_HEAD(&con->out_queue); INIT_LIST_HEAD(&con->out_sent); INIT_DELAYED_WORK(&con->work, con_work); - con->private = NULL; } diff --git a/src/kernel/mon_client.c b/src/kernel/mon_client.c index 06f13291e847e..d6b52a7fbb7fb 100644 --- a/src/kernel/mon_client.c +++ b/src/kernel/mon_client.c @@ -280,7 +280,7 @@ static void __request_mount(struct ceph_mon_client *monc) int ceph_monc_request_mount(struct ceph_mon_client *monc) { if (!monc->con) { - monc->con = kzalloc(sizeof(*monc->con), GFP_KERNEL); + monc->con = kmalloc(sizeof(*monc->con), GFP_KERNEL); if (!monc->con) return -ENOMEM; ceph_con_init(monc->client->msgr, monc->con); -- 2.39.5