// read pg state, log
pg->read_state(store, bl);
+ pg->check_ondisk_snap_colls(i->second);
+
set<pg_t> split_pgs;
if (osdmap->have_pg_pool(pg->info.pgid.pool()) &&
pg->info.pgid.is_split(pg->get_osdmap()->get_pg_num(pg->info.pgid.pool()),
osd->send_message_osd_cluster(reply, m->get_connection());
}
+
+void PG::check_ondisk_snap_colls(
+ const interval_set<snapid_t> &ondisk_snapcolls)
+{
+ if (!(ondisk_snapcolls == snap_collections)) {
+ derr << "ondisk_snapcolls: " << ondisk_snapcolls
+ << " does not match snap_collections " << snap_collections
+ << " repairing." << dendl;
+ snap_collections = ondisk_snapcolls;
+ }
+}
+
void PG::clear_scrub_reserved()
{
osd->scrub_wq.dequeue(this);
ino_t hino, const hobject_t &hoid,
const map<string, bufferptr> &attrs,
set<snapid_t> *snapcolls) {};
+ void check_ondisk_snap_colls(
+ const interval_set<snapid_t> &ondisk_snapcolls);
void clear_scrub_reserved();
void scrub_reserve_replicas();
void scrub_unreserve_replicas();