]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: simplify, and version, pg attrs
authorSage Weil <sage@newdream.net>
Fri, 12 Feb 2010 20:52:18 +0000 (12:52 -0800)
committerSage Weil <sage@newdream.net>
Fri, 12 Feb 2010 20:52:18 +0000 (12:52 -0800)
src/osd/PG.cc

index 2daa31f64b086945ac301a52ddedb1e961d573a3..87e1745f1e5bbcfa5785c409cada44ff2b2ed1f2 100644 (file)
@@ -1799,21 +1799,21 @@ void PG::write_info(ObjectStore::Transaction& t)
 {
   // pg state
   bufferlist infobl;
+  __u8 struct_v = 1;
+  ::encode(struct_v, infobl);
   ::encode(info, infobl);
+  ::encode(past_intervals, infobl);
   dout(20) << "write_info info " << infobl.length() << dendl;
   t.collection_setattr(coll_t::build_pg_coll(info.pgid), "info", infobl);
  
   // local state
   bufferlist snapbl;
+  struct_v = 1;
+  ::encode(struct_v, snapbl);
   ::encode(snap_collections, snapbl);
   dout(20) << "write_info snap " << snapbl.length() << dendl;
   t.collection_setattr(coll_t::build_pg_coll(info.pgid), "snap_collections", snapbl);
 
-  bufferlist ki;
-  ::encode(past_intervals, ki);
-  dout(20) << "write_info pastintervals " << ki.length() << dendl;
-  t.collection_setattr(coll_t::build_pg_coll(info.pgid), "past_intervals", ki);
-
   dirty_info = false;
 }
 
@@ -2107,26 +2107,22 @@ void PG::read_state(ObjectStore *store)
 {
   bufferlist bl;
   bufferlist::iterator p;
+  __u8 struct_v;
 
   // info
   store->collection_getattr(coll_t::build_pg_coll(info.pgid), "info", bl);
   p = bl.begin();
+  ::decode(struct_v, p);
   ::decode(info, p);
+  ::decode(past_intervals, p);
   
   // snap_collections
   bl.clear();
   store->collection_getattr(coll_t::build_pg_coll(info.pgid), "snap_collections", bl);
   p = bl.begin();
+  ::decode(struct_v, p);
   ::decode(snap_collections, p);
 
-  // past_intervals
-  bl.clear();
-  store->collection_getattr(coll_t::build_pg_coll(info.pgid), "past_intervals", bl);
-  if (bl.length()) {
-    p = bl.begin();
-    ::decode(past_intervals, p);
-  }
-
   read_log(store);
 }