forked from Minki/linux
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>
This commit is contained in:
parent
361be8601d
commit
ac8839d7b2
@ -138,6 +138,7 @@ static inline void ceph_encode_filepath(void **p, void *end,
|
|||||||
{
|
{
|
||||||
u32 len = path ? strlen(path) : 0;
|
u32 len = path ? strlen(path) : 0;
|
||||||
BUG_ON(*p + sizeof(ino) + sizeof(len) + len > end);
|
BUG_ON(*p + sizeof(ino) + sizeof(len) + len > end);
|
||||||
|
ceph_encode_8(p, 1);
|
||||||
ceph_encode_64(p, ino);
|
ceph_encode_64(p, ino);
|
||||||
ceph_encode_32(p, len);
|
ceph_encode_32(p, len);
|
||||||
if (len)
|
if (len)
|
||||||
|
@ -1325,7 +1325,7 @@ static struct ceph_msg *create_request_message(struct ceph_mds_client *mdsc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
len = sizeof(*head) +
|
len = sizeof(*head) +
|
||||||
pathlen1 + pathlen2 + 2*(sizeof(u32) + sizeof(u64));
|
pathlen1 + pathlen2 + 2*(1 + sizeof(u32) + sizeof(u64));
|
||||||
|
|
||||||
/* calculate (max) length for cap releases */
|
/* calculate (max) length for cap releases */
|
||||||
len += sizeof(struct ceph_mds_request_release) *
|
len += sizeof(struct ceph_mds_request_release) *
|
||||||
|
@ -1909,6 +1909,7 @@ struct ceph_messenger *ceph_messenger_create(struct ceph_entity_addr *myaddr)
|
|||||||
msgr->inst.addr = *myaddr;
|
msgr->inst.addr = *myaddr;
|
||||||
|
|
||||||
/* select a random nonce */
|
/* select a random nonce */
|
||||||
|
msgr->inst.addr.type = 0;
|
||||||
get_random_bytes(&msgr->inst.addr.nonce, sizeof(msgr->inst.addr.nonce));
|
get_random_bytes(&msgr->inst.addr.nonce, sizeof(msgr->inst.addr.nonce));
|
||||||
encode_my_addr(msgr);
|
encode_my_addr(msgr);
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
* whenever the wire protocol changes. try to keep this string length
|
* whenever the wire protocol changes. try to keep this string length
|
||||||
* constant.
|
* constant.
|
||||||
*/
|
*/
|
||||||
#define CEPH_BANNER "ceph v026"
|
#define CEPH_BANNER "ceph v027"
|
||||||
#define CEPH_BANNER_MAX_LEN 30
|
#define CEPH_BANNER_MAX_LEN 30
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +61,8 @@ extern const char *ceph_entity_type_name(int type);
|
|||||||
* entity_addr -- network address
|
* entity_addr -- network address
|
||||||
*/
|
*/
|
||||||
struct ceph_entity_addr {
|
struct ceph_entity_addr {
|
||||||
__le64 nonce; /* unique id for process (e.g. pid) */
|
__le32 type;
|
||||||
|
__le32 nonce; /* unique id for process (e.g. pid) */
|
||||||
struct sockaddr_storage in_addr;
|
struct sockaddr_storage in_addr;
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user