X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fosd%2FOSD.h;h=573235d8ca4a2c4cd27a385cde61ed208cae6791;hb=c07f9fc5a4f48397831383549fb0482b93480643;hp=bfa511e8b077df2d9864dae429eba84946a5b954;hpb=9439ae556f035e65c9c107ae13ddd09457dbbecd;p=ceph.git diff --git a/ceph/src/osd/OSD.h b/ceph/src/osd/OSD.h index bfa511e8b..573235d8c 100644 --- a/ceph/src/osd/OSD.h +++ b/ceph/src/osd/OSD.h @@ -947,9 +947,10 @@ public: } } // delayed pg activation - void queue_for_recovery(PG *pg, bool front = false) { + void queue_for_recovery(PG *pg) { Mutex::Locker l(recovery_lock); - if (front) { + + if (pg->get_state() & (PG_STATE_FORCED_RECOVERY | PG_STATE_FORCED_BACKFILL)) { awaiting_throttle.push_front(make_pair(pg->get_osdmap()->get_epoch(), pg)); } else { awaiting_throttle.push_back(make_pair(pg->get_osdmap()->get_epoch(), pg)); @@ -961,6 +962,7 @@ public: _queue_for_recovery(make_pair(queued, pg), reserved_pushes); } + void adjust_pg_priorities(vector pgs, int newflags); // osd map cache (past osd maps) Mutex map_cache_lock; @@ -2169,6 +2171,8 @@ protected: void handle_pg_backfill_reserve(OpRequestRef op); void handle_pg_recovery_reserve(OpRequestRef op); + void handle_force_recovery(Message *m); + void handle_pg_remove(OpRequestRef op); void _remove_pg(PG *pg); @@ -2301,6 +2305,8 @@ private: case MSG_OSD_REP_SCRUBMAP: case MSG_OSD_PG_UPDATE_LOG_MISSING: case MSG_OSD_PG_UPDATE_LOG_MISSING_REPLY: + case MSG_OSD_PG_RECOVERY_DELETE: + case MSG_OSD_PG_RECOVERY_DELETE_REPLY: return true; default: return false; @@ -2399,6 +2405,8 @@ private: int get_num_op_shards(); int get_num_op_threads(); + float get_osd_recovery_sleep(); + public: static int peek_meta(ObjectStore *store, string& magic, uuid_d& cluster_fsid, uuid_d& osd_fsid, int& whoami);