From a6a6923cc655e5b3e45ec98e6a66f0d586fa31d7 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 5 Oct 2015 09:15:55 -0400 Subject: [PATCH] osdc/Objecter: send FULL_TRY and FULL_FORCE ops despite full flag If a request has the FULL_TRY or FULL_FORCE flag, send it despite a full pool or cluster. Signed-off-by: Sage Weil --- src/osdc/Objecter.cc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index dc6f130adb067..6057d59f30039 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -2161,17 +2161,23 @@ ceph_tid_t Objecter::_op_submit(Op *op, RWLock::Context& lc) if ((op->target.flags & CEPH_OSD_FLAG_WRITE) && osdmap->test_flag(CEPH_OSDMAP_PAUSEWR)) { - ldout(cct, 10) << " paused modify " << op << " tid " << last_tid.read() << dendl; + ldout(cct, 10) << " paused modify " << op << " tid " << last_tid.read() + << 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 " << last_tid.read() << dendl; + ldout(cct, 10) << " paused read " << op << " tid " << last_tid.read() + << dendl; op->target.paused = true; _maybe_request_map(); } else if ((op->target.flags & CEPH_OSD_FLAG_WRITE) && - (_osdmap_full_flag() || _osdmap_pool_full(op->target.base_oloc.pool))) { - ldout(cct, 0) << " FULL, paused modify " << op << " tid " << last_tid.read() << dendl; + !(op->target.flags & (CEPH_OSD_FLAG_FULL_TRY | + CEPH_OSD_FLAG_FULL_FORCE)) && + (_osdmap_full_flag() || + _osdmap_pool_full(op->target.base_oloc.pool))) { + ldout(cct, 0) << " FULL, paused modify " << op << " tid " << last_tid.read() + << dendl; op->target.paused = true; _maybe_request_map(); } else if (!s->is_homeless()) { -- 2.39.5