mirror of
https://github.com/ceph/ceph
synced 2025-01-02 17:12:31 +00:00
Merge pull request #31657 from liewegas/fix-merge-vs-backoff
osd: release backoffs during merge Reviewed-by: Neha Ojha <nojha@redhat.com> Reviewed-by: Jason Dillaman <dillaman@redhat.com> Reviewed-by: Josh Durgin <jdurgin@redhat.com> Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
commit
941807d88e
@ -8474,6 +8474,11 @@ bool OSD::advance_pg(
|
|||||||
pg->write_if_dirty(rctx);
|
pg->write_if_dirty(rctx);
|
||||||
dispatch_context(rctx, pg, pg->get_osdmap(), &handle);
|
dispatch_context(rctx, pg, pg->get_osdmap(), &handle);
|
||||||
pg->ch->flush();
|
pg->ch->flush();
|
||||||
|
// release backoffs explicitly, since the on_shutdown path
|
||||||
|
// aggressively tears down backoff state.
|
||||||
|
if (pg->is_primary()) {
|
||||||
|
pg->release_pg_backoffs();
|
||||||
|
}
|
||||||
pg->on_shutdown();
|
pg->on_shutdown();
|
||||||
OSDShard *sdata = pg->osd_shard;
|
OSDShard *sdata = pg->osd_shard;
|
||||||
{
|
{
|
||||||
|
@ -1085,11 +1085,13 @@ protected:
|
|||||||
hobject_t end = info.pgid.pgid.get_hobj_end(pool.info.get_pg_num());
|
hobject_t end = info.pgid.pgid.get_hobj_end(pool.info.get_pg_num());
|
||||||
add_backoff(s, begin, end);
|
add_backoff(s, begin, end);
|
||||||
}
|
}
|
||||||
|
public:
|
||||||
void release_pg_backoffs() {
|
void release_pg_backoffs() {
|
||||||
hobject_t begin = info.pgid.pgid.get_hobj_start();
|
hobject_t begin = info.pgid.pgid.get_hobj_start();
|
||||||
hobject_t end = info.pgid.pgid.get_hobj_end(pool.info.get_pg_num());
|
hobject_t end = info.pgid.pgid.get_hobj_end(pool.info.get_pg_num());
|
||||||
release_backoffs(begin, end);
|
release_backoffs(begin, end);
|
||||||
}
|
}
|
||||||
|
protected:
|
||||||
|
|
||||||
// -- scrub --
|
// -- scrub --
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user