summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage.weil@dreamhost.com>2012-01-27 12:23:23 -0800
committerSage Weil <sage.weil@dreamhost.com>2012-01-27 12:23:23 -0800
commit6d37d5c95e88bae1653c63ebb4c307d0f3ee2f83 (patch)
tree99eab82a2a4f345f9b434c1c1a3f28ff97ca81d9
parent946da5a338015a583c6c9da476560c24604ae283 (diff)
downloadceph-6d37d5c95e88bae1653c63ebb4c307d0f3ee2f83.tar.gz
objecter: fix out_* initialization
This looks more like the real cause for #1986. Op ctor gets a vector of ops but out_* aren't initialized to match. Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
-rw-r--r--src/osdc/Objecter.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h
index 0814b58cecf..7522a5929a3 100644
--- a/src/osdc/Objecter.h
+++ b/src/osdc/Objecter.h
@@ -481,6 +481,16 @@ public:
tid(0), attempts(0),
paused(false), objver(ov), reply_epoch(NULL) {
ops.swap(op);
+
+ /* initialize out_* to match op vector */
+ out_bl.resize(ops.size());
+ out_rval.resize(ops.size());
+ out_handler.resize(ops.size());
+ for (unsigned i = 0; i < ops.size(); i++) {
+ out_bl[i] = NULL;
+ out_handler[i] = NULL;
+ out_rval[i] = NULL;
+ }
if (oloc.key == o)
oloc.key.clear();