summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Farnum <gregory.farnum@dreamhost.com>2011-11-18 08:47:09 -0800
committerGreg Farnum <gregory.farnum@dreamhost.com>2011-11-18 09:49:57 -0800
commit09c20c51299cd0251b4512d8e73c4190531eace0 (patch)
treef0d29b2978406e0946eddec96bdb168c91d96f0c
parent9800faeb9256dc86995b5603a2babdb71eef7ddc (diff)
downloadceph-09c20c51299cd0251b4512d8e73c4190531eace0.tar.gz
objecter: trigger oncommit acks if the request returns an error code.
Many users only set oncommit acks, so if they get an error code (which comes only as a CEPH_OSD_OP_ACK right now) the request disappears into the ether. (And remove stupid debug statements while we're at it.) Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
-rw-r--r--src/osdc/Objecter.cc4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc
index 8cdf5e100c7..a781b579842 100644
--- a/src/osdc/Objecter.cc
+++ b/src/osdc/Objecter.cc
@@ -1159,7 +1159,7 @@ void Objecter::handle_osd_op_reply(MOSDOpReply *m)
num_unacked--;
logger->inc(l_osdc_op_ack);
}
- if (op->oncommit && m->is_ondisk()) {
+ if (op->oncommit && (m->is_ondisk() || rc)) {
ldout(cct, 15) << "handle_osd_op_reply safe" << dendl;
oncommit = op->oncommit;
op->oncommit = 0;
@@ -1183,9 +1183,7 @@ void Objecter::handle_osd_op_reply(MOSDOpReply *m)
// do callbacks
if (onack) {
- ldout(cct, 20) << "Calling onack->finish with rc " << rc << dendl;
onack->finish(rc);
- ldout(cct, 20) << "Finished onack-finish" << dendl;
delete onack;
}
if (oncommit) {