cancelling pglog based recovery
The finish of pglog based recovery and the pg turning Clean are two
asynchronous events, other events like DeferRecovery should tolerate
this case.
Fixes: https://tracker.ceph.com/issues/72844
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
}
void PG::cancel_pglog_based_recovery_op() {
- ceph_assert(pglog_based_recovery_op);
- pglog_based_recovery_op->cancel();
- reset_pglog_based_recovery_op();
+ if (pglog_based_recovery_op) {
+ pglog_based_recovery_op->cancel();
+ reset_pglog_based_recovery_op();
+ }
}
void PG::C_PG_FinishRecovery::finish(int r) {