Fix degraded object recovery (it seems to work now)

This commit is contained in:
Vitaliy Filippov
2020-03-25 02:17:41 +03:00
parent 7acfc95f75
commit c0a22d825d
5 changed files with 66 additions and 46 deletions
+6 -6
View File
@@ -169,10 +169,10 @@ struct osd_object_id_t
struct osd_recovery_state_t
{
int st;
pg_num_t pg_num;
object_id oid;
osd_op_t *op;
int st = 0;
pg_num_t pg_num = 0;
object_id oid = { 0 };
osd_op_t *op = NULL;
};
class osd_t
@@ -197,7 +197,7 @@ class osd_t
int peering_state = 0;
unsigned pg_count = 0;
uint64_t next_subop_id = 1;
osd_recovery_state_t *recovery_state;
osd_recovery_state_t recovery_state;
// Unstable writes
std::map<osd_object_id_t, uint64_t> unstable_writes;
@@ -276,7 +276,7 @@ class osd_t
void continue_primary_write(osd_op_t *cur_op);
void continue_primary_sync(osd_op_t *cur_op);
void finish_op(osd_op_t *cur_op, int retval);
void handle_primary_subop(osd_op_t *cur_op, int ok, uint64_t version);
void handle_primary_subop(uint64_t opcode, osd_op_t *cur_op, int ok, uint64_t version);
void submit_primary_subops(int submit_type, int read_pg_size, const uint64_t* osd_set, osd_op_t *cur_op);
void submit_primary_sync_subops(osd_op_t *cur_op);
void submit_primary_stab_subops(osd_op_t *cur_op);