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 <josh.durgin@inktank.com>
(cherry picked from commit
c5c399d327cfc0d232d9ec7d49ababa914d0b21a)
++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);
}