We'll use this shortly.
Signed-off-by: Sage Weil <sage@redhat.com>
int PG::_prepare_write_info(map<string,bufferlist> *km,
epoch_t epoch,
- pg_info_t &info,
+ pg_info_t &info, pg_info_t &last_written_info,
map<epoch_t,pg_interval_t> &past_intervals,
bool dirty_big_info,
bool dirty_epoch)
unstable_stats.clear();
bool need_update_epoch = last_epoch < get_osdmap()->get_epoch();
- int ret = _prepare_write_info(km, get_osdmap()->get_epoch(), info,
+ int ret = _prepare_write_info(km, get_osdmap()->get_epoch(),
+ info,
+ last_written_info,
past_intervals,
dirty_big_info, need_update_epoch);
assert(ret == 0);
return pool.info.ec_pool();
}
// pg state
- pg_info_t info;
+ pg_info_t info; ///< current pg info
+ pg_info_t last_written_info; ///< last written info
__u8 info_struct_v;
static const __u8 cur_struct_v = 8;
// v7 was SnapMapper addition in 86658392516d5175b2756659ef7ffaaf95b0f8ad
static int _prepare_write_info(map<string,bufferlist> *km,
epoch_t epoch,
pg_info_t &info,
+ pg_info_t &last_written_info,
map<epoch_t,pg_interval_t> &past_intervals,
bool dirty_big_info,
bool dirty_epoch);
coll_t coll(info.pgid);
ghobject_t pgmeta_oid(info.pgid.make_pgmeta_oid());
map<string,bufferlist> km;
+ pg_info_t last_written_info;
int ret = PG::_prepare_write_info(
&km, epoch,
info,
+ last_written_info,
past_intervals,
true, true);
if (ret) cerr << "Failed to write info" << std::endl;