summaryrefslogtreecommitdiffstats
path: root/include/linux/ceph
diff options
context:
space:
mode:
authorAlex Elder2012-06-01 21:56:43 +0200
committerAlex Elder2012-06-06 16:23:54 +0200
commit38941f8031bf042dba3ced6394ba3a3b16c244ea (patch)
tree575613cf05d5a0f652fb0cd337d110590c465cb2 /include/linux/ceph
parentlibceph: tweak ceph_alloc_msg() (diff)
downloadkernel-qcow2-linux-38941f8031bf042dba3ced6394ba3a3b16c244ea.tar.gz
kernel-qcow2-linux-38941f8031bf042dba3ced6394ba3a3b16c244ea.tar.xz
kernel-qcow2-linux-38941f8031bf042dba3ced6394ba3a3b16c244ea.zip
libceph: have messages point to their connection
When a ceph message is queued for sending it is placed on a list of pending messages (ceph_connection->out_queue). When they are actually sent over the wire, they are moved from that list to another (ceph_connection->out_sent). When acknowledgement for the message is received, it is removed from the sent messages list. During that entire time the message is "in the possession" of a single ceph connection. Keep track of that connection in the message. This will be used in the next patch (and is a helpful bit of information for debugging anyway). Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'include/linux/ceph')
-rw-r--r--include/linux/ceph/messenger.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/ceph/messenger.h b/include/linux/ceph/messenger.h
index dd27837f79ac..6df837f72761 100644
--- a/include/linux/ceph/messenger.h
+++ b/include/linux/ceph/messenger.h
@@ -77,7 +77,10 @@ struct ceph_msg {
unsigned nr_pages; /* size of page array */
unsigned page_alignment; /* io offset in first page */
struct ceph_pagelist *pagelist; /* instead of pages */
+
+ struct ceph_connection *con;
struct list_head list_head;
+
struct kref kref;
struct bio *bio; /* instead of pages/pagelist */
struct bio *bio_iter; /* bio iterator */