diff options
Diffstat (limited to 'src/osd/PG.h')
-rw-r--r-- | src/osd/PG.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/osd/PG.h b/src/osd/PG.h index 4a292f6b3d0..1c680bfea2d 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -747,6 +747,8 @@ public: epoch_t scrub_epoch_start; ScrubMap primary_scrubmap; MOSDRepScrub *active_rep_scrub; + bool must_scrub, must_repair; + utime_t scrub_reg_stamp; void repair_object(const hobject_t& soid, ScrubMap::object *po, int bad_peer, int ok_peer); bool _compare_scrub_objects(ScrubMap::object &auth, @@ -756,6 +758,7 @@ public: map<hobject_t, set<int> > &missing, map<hobject_t, set<int> > &inconsistent, map<hobject_t, int> &authoritative, + map<hobject_t, set<int> > &inconsistent_snapcolls, ostream &errorstream); void scrub(); void scrub_finalize(); @@ -766,11 +769,24 @@ public: void build_scrub_map(ScrubMap &map); void build_inc_scrub_map(ScrubMap &map, eversion_t v); virtual int _scrub(ScrubMap &map, int& errors, int& fixed) { return 0; } + virtual bool _report_snap_collection_errors( + const hobject_t &hoid, + int osd, + const map<string, bufferptr> &attrs, + const set<snapid_t> &snapcolls, + uint32_t nlinks, + ostream &out) { return false; }; + virtual void check_snap_collections( + ino_t hino, const hobject_t &hoid, + const map<string, bufferptr> &attrs, + set<snapid_t> *snapcolls) {}; void clear_scrub_reserved(); void scrub_reserve_replicas(); void scrub_unreserve_replicas(); bool scrub_all_replicas_reserved() const; bool sched_scrub(); + void reg_scrub(); + void unreg_scrub(); void replica_scrub(class MOSDRepScrub *op); void sub_op_scrub_map(OpRequestRef op); @@ -1254,6 +1270,7 @@ public: scrub_reserved(false), scrub_reserve_failed(false), scrub_waiting_on(0), active_rep_scrub(0), + must_scrub(false), must_repair(false), recovery_state(this) { pool->get(); |