aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ceph
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/ceph')
-rw-r--r--include/linux/ceph/messenger.h43
1 files changed, 22 insertions, 21 deletions
diff --git a/include/linux/ceph/messenger.h b/include/linux/ceph/messenger.h
index 4fb870a5b5fc..e7557242817c 100644
--- a/include/linux/ceph/messenger.h
+++ b/include/linux/ceph/messenger.h
@@ -88,6 +88,25 @@ static __inline__ bool ceph_msg_data_type_valid(enum ceph_msg_data_type type)
88 } 88 }
89} 89}
90 90
91struct ceph_msg_data {
92 enum ceph_msg_data_type type;
93 union {
94#ifdef CONFIG_BLOCK
95 struct {
96 struct bio *bio;
97 size_t bio_length;
98 };
99#endif /* CONFIG_BLOCK */
100 struct {
101 struct page **pages; /* NOT OWNER. */
102 size_t length; /* total # bytes */
103 unsigned int alignment; /* first page */
104 };
105 struct ceph_pagelist *pagelist;
106 };
107 struct ceph_msg_data_cursor *cursor;
108};
109
91struct ceph_msg_data_cursor { 110struct ceph_msg_data_cursor {
92 size_t resid; /* bytes not yet consumed */ 111 size_t resid; /* bytes not yet consumed */
93 bool last_piece; /* now at last piece of data item */ 112 bool last_piece; /* now at last piece of data item */
@@ -112,25 +131,6 @@ struct ceph_msg_data_cursor {
112 }; 131 };
113}; 132};
114 133
115struct ceph_msg_data {
116 enum ceph_msg_data_type type;
117 union {
118#ifdef CONFIG_BLOCK
119 struct {
120 struct bio *bio;
121 size_t bio_length;
122 };
123#endif /* CONFIG_BLOCK */
124 struct {
125 struct page **pages; /* NOT OWNER. */
126 size_t length; /* total # bytes */
127 unsigned int alignment; /* first page */
128 };
129 struct ceph_pagelist *pagelist;
130 };
131 struct ceph_msg_data_cursor cursor; /* pagelist only */
132};
133
134/* 134/*
135 * a single message. it contains a header (src, dest, message type, etc.), 135 * a single message. it contains a header (src, dest, message type, etc.),
136 * footer (crc values, mainly), a "front" message body, and possibly a 136 * footer (crc values, mainly), a "front" message body, and possibly a
@@ -142,8 +142,9 @@ struct ceph_msg {
142 struct kvec front; /* unaligned blobs of message */ 142 struct kvec front; /* unaligned blobs of message */
143 struct ceph_buffer *middle; 143 struct ceph_buffer *middle;
144 144
145 size_t data_length; 145 size_t data_length;
146 struct ceph_msg_data *data; /* data payload */ 146 struct ceph_msg_data *data;
147 struct ceph_msg_data_cursor cursor;
147 148
148 struct ceph_connection *con; 149 struct ceph_connection *con;
149 struct list_head list_head; /* links for connection lists */ 150 struct list_head list_head; /* links for connection lists */