assert(op->target.flags & (CEPH_OSD_FLAG_READ|CEPH_OSD_FLAG_WRITE));
+ if (osdmap_full_try) {
+ op->target.flags |= CEPH_OSD_FLAG_FULL_TRY;
+ }
+
bool need_send = false;
- if ((op->target.flags & CEPH_OSD_FLAG_WRITE) &&
- osdmap->test_flag(CEPH_OSDMAP_PAUSEWR)) {
+ 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
<< dendl;
op->target.paused = true;