}
bool need_send = false;
-
- if (osdmap->get_epoch() < epoch_barrier) {
- ldout(cct, 10) << " barrier, paused " << op << " tid " << op->tid
- << dendl;
- op->target.paused = true;
- _maybe_request_map();
- } else if ((op->target.flags & CEPH_OSD_FLAG_WRITE) &&
- osdmap->test_flag(CEPH_OSDMAP_PAUSEWR)) {
- ldout(cct, 10) << " paused modify " << op << " tid " << op->tid
+ if (op->target.paused) {
+ ldout(cct, 10) << " tid " << op->tid << " op " << op << " is paused"
<< dendl;
- op->target.paused = true;
- _maybe_request_map();
- } else if ((op->target.flags & CEPH_OSD_FLAG_READ) &&
- osdmap->test_flag(CEPH_OSDMAP_PAUSERD)) {
- ldout(cct, 10) << " paused read " << op << " tid " << op->tid
- << dendl;
- op->target.paused = true;
- _maybe_request_map();
- } else if (op->target.respects_full() &&
- (_osdmap_full_flag() ||
- _osdmap_pool_full(op->target.base_oloc.pool))) {
- ldout(cct, 0) << " FULL, paused modify " << op << " tid "
- << op->tid << dendl;
- op->target.paused = true;
_maybe_request_map();
} else if (!s->is_homeless()) {
need_send = true;