From: Josh Durgin Date: Wed, 6 Nov 2013 02:46:37 +0000 (+0800) Subject: objecter: don't resend paused ops X-Git-Tag: v0.75~112^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c5c399d327cfc0d232d9ec7d49ababa914d0b21a;p=ceph.git objecter: don't resend paused ops Paused ops are meant to block on the client side until a new map that unpauses them is recieved. If we send paused writes when the FULL flag is set, we'll get -ENOSPC from the osds, which is not what Objecter users expect. This may cause rbd without caching to produce an I/O error instead of waiting for the cluster to have capacity. Fixes: #6725 Backport: dumpling Signed-off-by: Josh Durgin --- diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index d2c574d982e1..286c03dd2d6f 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -1001,7 +1001,8 @@ void Objecter::kick_requests(OSDSession *session) ++p; logger->inc(l_osdc_op_resend); if (op->should_resend) { - resend[op->tid] = op; + if (!op->paused) + resend[op->tid] = op; } else { cancel_linger_op(op); }