}
#include "PG.h"
#include "OSDMap.h"
+#include "PGBackend.h"
const char *ceph_osd_flag_name(unsigned flag)
{
void pg_log_entry_t::encode(bufferlist &bl) const
{
- ENCODE_START(8, 4, bl);
+ ENCODE_START(9, 4, bl);
::encode(op, bl);
::encode(soid, bl);
::encode(version, bl);
::encode(prior_version, bl);
::encode(snaps, bl);
::encode(user_version, bl);
+ ::encode(mod_desc, bl);
ENCODE_FINISH(bl);
}
else
user_version = version.version;
+ if (struct_v >= 9)
+ ::decode(mod_desc, bl);
+ else
+ mod_desc.mark_unrollbackable();
+
DECODE_FINISH(bl);
}
f->dump_unsigned("snap", *p);
f->close_section();
}
+ {
+ f->open_object_section("mod_desc");
+ mod_desc.dump(f);
+ f->close_section();
+ }
}
void pg_log_entry_t::generate_test_instances(list<pg_log_entry_t*>& o)
#include <stdio.h>
#include <memory>
#include <boost/scoped_ptr.hpp>
+#include <boost/optional.hpp>
#include "include/rados/rados_types.hpp"
bool invalid_pool; // only when decoding pool-less hobject based entries
uint64_t offset; // [soft state] my offset on disk
+
+ /// describes state for a locally-rollbackable entry
+ ObjectModDesc mod_desc;
pg_log_entry_t()
: op(0), user_version(0),