X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fosd%2FPGBackend.h;h=d69e511d36f90a7a1ff68acac9fdab539044262c;hb=28e407b858acd3bddc89f68583571f771bb42e46;hp=f244f4c2f703dcfc7cbf96e73166b40a2c2c60cd;hpb=c07f9fc5a4f48397831383549fb0482b93480643;p=ceph.git diff --git a/ceph/src/osd/PGBackend.h b/ceph/src/osd/PGBackend.h index f244f4c2f..d69e511d3 100644 --- a/ceph/src/osd/PGBackend.h +++ b/ceph/src/osd/PGBackend.h @@ -106,6 +106,7 @@ typedef ceph::shared_ptr OSDMapRef; const hobject_t oid) = 0; virtual void failed_push(const list &from, const hobject_t &soid) = 0; + virtual void finish_degraded_object(const hobject_t& oid) = 0; virtual void primary_failed(const hobject_t &soid) = 0; virtual bool primary_error(const hobject_t& soid, eversion_t v) = 0; virtual void cancel_pull(const hobject_t &soid) = 0; @@ -122,10 +123,16 @@ typedef ceph::shared_ptr OSDMapRef; eversion_t v ) = 0; + virtual void backfill_add_missing( + const hobject_t &oid, + eversion_t v + ) = 0; + virtual void remove_missing_object(const hobject_t &oid, eversion_t v, Context *on_complete) = 0; + /** * Bless a context * @@ -282,6 +289,7 @@ typedef ceph::shared_ptr OSDMapRef; virtual bool check_osdmap_full(const set &missing_on) = 0; + virtual bool maybe_preempt_replica_scrub(const hobject_t& oid) = 0; virtual ~Listener() {} }; Listener *parent; @@ -552,9 +560,9 @@ typedef ceph::shared_ptr OSDMapRef; virtual bool scrub_supported() = 0; virtual bool auto_repair_supported() const = 0; - void be_scan_list( - ScrubMap &map, const vector &ls, bool deep, uint32_t seed, - ThreadPool::TPHandle &handle); + int be_scan_list( + ScrubMap &map, + ScrubMapBuilder &pos); bool be_compare_scrub_objects( pg_shard_t auth_shard, const ScrubMap::object &auth, @@ -571,11 +579,13 @@ typedef ceph::shared_ptr OSDMapRef; inconsistent_obj_wrapper &object_error); void be_compare_scrubmaps( const map &maps, + const set &master_set, bool repair, map> &missing, map> &inconsistent, map> &authoritative, - map> &missing_digest, + map, + boost::optional>> &missing_digest, int &shallow_errors, int &deep_errors, Scrub::Store *store, const spg_t& pgid, @@ -583,11 +593,16 @@ typedef ceph::shared_ptr OSDMapRef; ostream &errorstream); virtual uint64_t be_get_ondisk_size( uint64_t logical_size) = 0; - virtual void be_deep_scrub( - const hobject_t &poid, - uint32_t seed, - ScrubMap::object &o, - ThreadPool::TPHandle &handle) = 0; + virtual int be_deep_scrub( + const hobject_t &oid, + ScrubMap &map, + ScrubMapBuilder &pos, + ScrubMap::object &o) = 0; + void be_large_omap_check( + const map &maps, + const set &master_set, + int& large_omap_objects, + ostream &warnstream) const; static PGBackend *build_pg_backend( const pg_pool_t &pool,