]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #14190 from idryomov/wip-respect-epoch-barrier
authorSage Weil <sage@newdream.net>
Tue, 4 Apr 2017 20:07:29 +0000 (15:07 -0500)
committerGitHub <noreply@github.com>
Tue, 4 Apr 2017 20:07:29 +0000 (15:07 -0500)
osdc/Objecter: respect epoch barrier in _op_submit()

Reviewed-by: John Spray <john.spray@redhat.com>
1  2 
src/osdc/Objecter.cc

index 15968dd19b88507d1ecf1f78b129cedfaa1f0afb,b3251ac07ff23d84e4b8ad739d363dc478573700..0d8138d8909210c7acb4885b49e3f68c02fd68b3
@@@ -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;