summaryrefslogtreecommitdiffstats
path: root/fs/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-05-13 00:23:30 +0200
committerSage Weil <sage@newdream.net>2010-05-18 00:25:38 +0200
commitaba558e28ac40a598542d995c09efa8439ee3ed4 (patch)
tree22df6fe65694b3ebe5a0a56dbf96c3973f3c5812 /fs/ceph
parentceph: resync headers with userland (diff)
downloadlinux-aba558e28ac40a598542d995c09efa8439ee3ed4.tar.xz
linux-aba558e28ac40a598542d995c09efa8439ee3ed4.zip
ceph: save peer feature bits in connection structure
These are used for adjusting behavior, such as conditionally encoding a newer message format. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph')
-rw-r--r--fs/ceph/messenger.c1
-rw-r--r--fs/ceph/messenger.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/fs/ceph/messenger.c b/fs/ceph/messenger.c
index d18a544490f6..50c5f24086fd 100644
--- a/fs/ceph/messenger.c
+++ b/fs/ceph/messenger.c
@@ -1223,6 +1223,7 @@ static int process_connect(struct ceph_connection *con)
clear_bit(CONNECTING, &con->state);
con->peer_global_seq = le32_to_cpu(con->in_reply.global_seq);
con->connect_seq++;
+ con->peer_features = server_feat;
dout("process_connect got READY gseq %d cseq %d (%d)\n",
con->peer_global_seq,
le32_to_cpu(con->in_reply.connect_seq),
diff --git a/fs/ceph/messenger.h b/fs/ceph/messenger.h
index 4e5764c7fbc2..889f81f093c9 100644
--- a/fs/ceph/messenger.h
+++ b/fs/ceph/messenger.h
@@ -142,6 +142,7 @@ struct ceph_connection {
struct ceph_entity_addr peer_addr; /* peer address */
struct ceph_entity_name peer_name; /* peer name */
struct ceph_entity_addr peer_addr_for_me;
+ unsigned peer_features;
u32 connect_seq; /* identify the most recent connection
attempt for this connection, client */
u32 peer_global_seq; /* peer's global seq for this connection */