diff --git a/src/osd/osd_primary.cpp b/src/osd/osd_primary.cpp index d33b2958..e5c9784c 100644 --- a/src/osd/osd_primary.cpp +++ b/src/osd/osd_primary.cpp @@ -780,6 +780,11 @@ resume_5: } // Remove version override pg.ver_override.erase(op_data->oid); + // Mark PG and OSDs as dirty + for (auto & chunk: (op_data->object_state ? op_data->object_state->osd_set : pg.cur_loc_set)) + { + this->dirty_osds.insert(chunk.osd_num); + } // Adjust PG stats after "instant stabilize", because we need object_state above if (!op_data->object_state) { @@ -790,11 +795,6 @@ resume_5: remove_object_from_state(op_data->oid, &op_data->object_state, pg); deref_object_state(pg, &op_data->object_state, true); } - // Mark PG and OSDs as dirty - for (auto & chunk: (op_data->object_state ? op_data->object_state->osd_set : pg.cur_loc_set)) - { - this->dirty_osds.insert(chunk.osd_num); - } for (auto cl_it = msgr.clients.find(cur_op->client_id); cl_it != msgr.clients.end(); ) { cl_it->second->dirty_pgs.insert({ .pool_id = pg.pool_id, .pg_num = pg.pg_num });