]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
monmap: fix decoding of old monmaps
authorSage Weil <sage@inktank.com>
Mon, 21 May 2012 20:58:55 +0000 (13:58 -0700)
committerSage Weil <sage@inktank.com>
Mon, 21 May 2012 20:58:55 +0000 (13:58 -0700)
The old monmaps had a u16 for the version.  Fix our decode.

Signed-off-by: Sage Weil <sage@inktank.com>
src/include/encoding.h
src/mon/MonMap.cc

index 9ab05a957aa4101bc7a7deccc53ce353d367eca7..2db2a4224fab8b590f66bf7faa9ad8f486deb651 100644 (file)
@@ -794,6 +794,9 @@ inline void decode(std::deque<T>& ls, bufferlist::iterator& p)
 #define DECODE_START_LEGACY_COMPAT_LEN_32(v, compatv, lenv, bl)                \
   __DECODE_START_LEGACY_COMPAT_LEN(v, compatv, lenv, 3, bl)
 
+#define DECODE_START_LEGACY_COMPAT_LEN_16(v, compatv, lenv, bl)                \
+  __DECODE_START_LEGACY_COMPAT_LEN(v, compatv, lenv, 1, bl)
+
 /**
  * finish decode block
  *
index 33c04213707b48321d73166b93cee47b0b0a1516..420e830fbb828018a63af6d3dde22eff314d3ad1 100644 (file)
@@ -48,7 +48,7 @@ void MonMap::encode(bufferlist& blist, uint64_t features) const
 
 void MonMap::decode(bufferlist::iterator &p)
 {
-  DECODE_START_LEGACY_COMPAT_LEN(3, 3, 3, p);
+  DECODE_START_LEGACY_COMPAT_LEN_16(3, 3, 3, p);
   ::decode_raw(fsid, p);
   ::decode(epoch, p);
   if (struct_v == 1) {