]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix SimpleLock state encode/decode
authorSage Weil <sage@newdream.net>
Tue, 16 Mar 2010 19:51:58 +0000 (12:51 -0700)
committerSage Weil <sage@newdream.net>
Tue, 16 Mar 2010 19:51:58 +0000 (12:51 -0700)
This was broken when we changed the size of SimpleLock::state
to __u16.

src/mds/SimpleLock.h

index 6479b28455abc092d0de7c3542cc0b96c333c717..383e648c7a0d59672a8039d90e68fee5bf0e157a 100644 (file)
@@ -483,19 +483,17 @@ public:
       more()->gather_set.swap(g);
   }
   void encode_state_for_replica(bufferlist& bl) const {
-    __u32 s = get_replica_state();
+    __s16 s = get_replica_state();
     ::encode(s, bl);
   }
   void decode_state(bufferlist::iterator& p, bool is_new=true) {
+    __s16 s;
+    ::decode(s, p);
     if (is_new)
-      ::decode(state, p);
-    else {
-      __s32 blah;
-      ::decode(blah, p);
-    }
+      state = s;
   }
   void decode_state_rejoin(bufferlist::iterator& p, list<Context*>& waiters) {
-    __s32 s;
+    __s16 s;
     ::decode(s, p);
     set_state_rejoin(s, waiters);
   }