aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-01-27 17:28:10 -0500
committerSage Weil <sage@newdream.net>2010-01-29 15:41:09 -0500
commitac8839d7b264d0fa478fca7c4f9b6bb833540a80 (patch)
treec5dd4fbc61c2f96845c9198a6eb9840074ebcb8c /fs
parent361be8601d78e488b5249032cc4e779b81d7928e (diff)
ceph: include type in ceph_entity_addr, filepath
Include a type/version in ceph_entity_addr and filepath. Include extra byte in filepath encoding as necessary. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs')
-rw-r--r--fs/ceph/decode.h1
-rw-r--r--fs/ceph/mds_client.c2
-rw-r--r--fs/ceph/messenger.c1
-rw-r--r--fs/ceph/msgr.h5
4 files changed, 6 insertions, 3 deletions
diff --git a/fs/ceph/decode.h b/fs/ceph/decode.h
index 10de8489624..b90a33b948c 100644
--- a/fs/ceph/decode.h
+++ b/fs/ceph/decode.h
@@ -138,6 +138,7 @@ static inline void ceph_encode_filepath(void **p, void *end,
138{ 138{
139 u32 len = path ? strlen(path) : 0; 139 u32 len = path ? strlen(path) : 0;
140 BUG_ON(*p + sizeof(ino) + sizeof(len) + len > end); 140 BUG_ON(*p + sizeof(ino) + sizeof(len) + len > end);
141 ceph_encode_8(p, 1);
141 ceph_encode_64(p, ino); 142 ceph_encode_64(p, ino);
142 ceph_encode_32(p, len); 143 ceph_encode_32(p, len);
143 if (len) 144 if (len)
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index 93998a0678c..4e3e8b229e6 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -1325,7 +1325,7 @@ static struct ceph_msg *create_request_message(struct ceph_mds_client *mdsc,
1325 } 1325 }
1326 1326
1327 len = sizeof(*head) + 1327 len = sizeof(*head) +
1328 pathlen1 + pathlen2 + 2*(sizeof(u32) + sizeof(u64)); 1328 pathlen1 + pathlen2 + 2*(1 + sizeof(u32) + sizeof(u64));
1329 1329
1330 /* calculate (max) length for cap releases */ 1330 /* calculate (max) length for cap releases */
1331 len += sizeof(struct ceph_mds_request_release) * 1331 len += sizeof(struct ceph_mds_request_release) *
diff --git a/fs/ceph/messenger.c b/fs/ceph/messenger.c
index 81bc779adb9..e4e8d4439d3 100644
--- a/fs/ceph/messenger.c
+++ b/fs/ceph/messenger.c
@@ -1909,6 +1909,7 @@ struct ceph_messenger *ceph_messenger_create(struct ceph_entity_addr *myaddr)
1909 msgr->inst.addr = *myaddr; 1909 msgr->inst.addr = *myaddr;
1910 1910
1911 /* select a random nonce */ 1911 /* select a random nonce */
1912 msgr->inst.addr.type = 0;
1912 get_random_bytes(&msgr->inst.addr.nonce, sizeof(msgr->inst.addr.nonce)); 1913 get_random_bytes(&msgr->inst.addr.nonce, sizeof(msgr->inst.addr.nonce));
1913 encode_my_addr(msgr); 1914 encode_my_addr(msgr);
1914 1915
diff --git a/fs/ceph/msgr.h b/fs/ceph/msgr.h
index 40b6189aa9e..8aaab414f3f 100644
--- a/fs/ceph/msgr.h
+++ b/fs/ceph/msgr.h
@@ -21,7 +21,7 @@
21 * whenever the wire protocol changes. try to keep this string length 21 * whenever the wire protocol changes. try to keep this string length
22 * constant. 22 * constant.
23 */ 23 */
24#define CEPH_BANNER "ceph v026" 24#define CEPH_BANNER "ceph v027"
25#define CEPH_BANNER_MAX_LEN 30 25#define CEPH_BANNER_MAX_LEN 30
26 26
27 27
@@ -61,7 +61,8 @@ extern const char *ceph_entity_type_name(int type);
61 * entity_addr -- network address 61 * entity_addr -- network address
62 */ 62 */
63struct ceph_entity_addr { 63struct ceph_entity_addr {
64 __le64 nonce; /* unique id for process (e.g. pid) */ 64 __le32 type;
65 __le32 nonce; /* unique id for process (e.g. pid) */
65 struct sockaddr_storage in_addr; 66 struct sockaddr_storage in_addr;
66} __attribute__ ((packed)); 67} __attribute__ ((packed));
67 68