From: Sage Weil Date: Tue, 11 May 2010 20:31:37 +0000 (-0700) Subject: mds: conditionally include flock metadata in MClientCaps X-Git-Tag: v0.22~346^2~41 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a11a31978565abc783484f4f344d2bc0f0a0b3d7;p=ceph.git mds: conditionally include flock metadata in MClientCaps --- diff --git a/src/messages/MClientCaps.h b/src/messages/MClientCaps.h index db46dfe0af9..9e5ef38de07 100644 --- a/src/messages/MClientCaps.h +++ b/src/messages/MClientCaps.h @@ -23,6 +23,7 @@ class MClientCaps : public Message { struct ceph_mds_caps head; bufferlist snapbl; bufferlist xattrbl; + bufferlist flockbl; int get_caps() { return head.caps; } int get_wanted() { return head.wanted; } @@ -138,6 +139,10 @@ public: assert(middle.length() == head.xattr_len); if (head.xattr_len) xattrbl = middle; + + // conditionally decode flock metadata + if (header.version >= 2) + ::decode(flockbl, p); } void encode_payload() { head.snap_trace_len = snapbl.length(); @@ -146,6 +151,12 @@ public: ::encode_nohead(snapbl, payload); middle = xattrbl; + + // conditionally include flock metadata + if (connection->has_feature(CEPH_FEATURE_FLOCK)) { + header.version = 2; + ::encode(flockbl, payload); + } } };