ConnectionRef con = s->con;
if (!con) // OSD::ms_handle_reset clears s->con without a lock
return;
- Backoff *b = s->have_backoff(info.pgid, begin);
+ BackoffRef b(s->have_backoff(info.pgid, begin));
if (b) {
derr << __func__ << " already have backoff for " << s << " begin " << begin
<< " " << *b << dendl;
session->put(); // get_priv takes a ref, and so does the SessionRef
if (op->get_req()->get_type() == CEPH_MSG_OSD_OP) {
- Backoff *b = session->have_backoff(info.pgid,
- info.pgid.pgid.get_hobj_start());
+ BackoffRef b(session->have_backoff(info.pgid,
+ info.pgid.pgid.get_hobj_start()));
if (b) {
dout(10) << " have backoff " << *b << " " << *m << dendl;
assert(!b->is_acked() || !g_conf->osd_debug_crash_on_ignored_backoff);
}
session->put(); // get_priv() takes a ref, and so does the intrusive_ptr
- Backoff *b = session->have_backoff(info.pgid, head);
+ BackoffRef b(session->have_backoff(info.pgid, head));
if (b) {
dout(10) << __func__ << " have backoff " << *b << " " << *m << dendl;
assert(!b->is_acked() || !g_conf->osd_debug_crash_on_ignored_backoff);
const hobject_t& start,
const hobject_t& end);
- Backoff *have_backoff(spg_t pgid, const hobject_t& oid) {
+ BackoffRef have_backoff(spg_t pgid, const hobject_t& oid) {
if (!backoff_count.load()) {
return nullptr;
}
return nullptr;
}
- void add_backoff(Backoff *b) {
+ void add_backoff(BackoffRef b) {
Mutex::Locker l(backoff_lock);
assert(!backoff_count == backoffs.empty());
backoffs[b->pgid][b->begin].insert(b);