From: Sage Weil Date: Tue, 4 Apr 2017 20:07:29 +0000 (-0500) Subject: Merge pull request #14190 from idryomov/wip-respect-epoch-barrier X-Git-Tag: v12.0.2~199 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f907d831407b5b09ff44914697fa909388c80039;p=ceph.git Merge pull request #14190 from idryomov/wip-respect-epoch-barrier osdc/Objecter: respect epoch barrier in _op_submit() Reviewed-by: John Spray --- f907d831407b5b09ff44914697fa909388c80039 diff --cc src/osdc/Objecter.cc index 15968dd19b88,b3251ac07ff2..0d8138d89092 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@@ -2352,14 -2352,15 +2352,19 @@@ void Objecter::_op_submit(Op *op, shuni 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;