From 9d0476c5941c0795cd3bb57918331faecdc65aee Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 13 Jan 2012 14:50:55 -0800 Subject: [PATCH] objecter: fix add_*() calls to use proper helper The helper resizes the other vectors; need that everywhere. Signed-off-by: Sage Weil --- src/osdc/Objecter.h | 112 ++++++++++++++++++++------------------------ 1 file changed, 52 insertions(+), 60 deletions(-) diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index f4549940d77d5..346a347f6d072 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -79,84 +79,76 @@ struct ObjectOperation { return ops[s]; } void add_data(int op, uint64_t off, uint64_t len, bufferlist& bl) { - int s = ops.size(); - ops.resize(s+1); - ops[s].op.op = op; - ops[s].op.extent.offset = off; - ops[s].op.extent.length = len; - ops[s].indata.claim_append(bl); + OSDOp& osd_op = add_op(op); + osd_op.op.op = op; + osd_op.op.extent.offset = off; + osd_op.op.extent.length = len; + osd_op.indata.claim_append(bl); } void add_clone_range(int op, uint64_t off, uint64_t len, const object_t& srcoid, uint64_t srcoff, snapid_t srcsnapid) { - int s = ops.size(); - ops.resize(s+1); - ops[s].op.op = op; - ops[s].op.clonerange.offset = off; - ops[s].op.clonerange.length = len; - ops[s].op.clonerange.src_offset = srcoff; - ops[s].soid = sobject_t(srcoid, srcsnapid); + OSDOp& osd_op = add_op(op); + osd_op.op.op = op; + osd_op.op.clonerange.offset = off; + osd_op.op.clonerange.length = len; + osd_op.op.clonerange.src_offset = srcoff; + osd_op.soid = sobject_t(srcoid, srcsnapid); } void add_xattr(int op, const char *name, const bufferlist& data) { - int s = ops.size(); - ops.resize(s+1); - ops[s].op.op = op; - ops[s].op.xattr.name_len = (name ? strlen(name) : 0); - ops[s].op.xattr.value_len = data.length(); + OSDOp& osd_op = add_op(op); + osd_op.op.op = op; + osd_op.op.xattr.name_len = (name ? strlen(name) : 0); + osd_op.op.xattr.value_len = data.length(); if (name) - ops[s].indata.append(name); - ops[s].indata.append(data); + osd_op.indata.append(name); + osd_op.indata.append(data); } void add_xattr_cmp(int op, const char *name, uint8_t cmp_op, uint8_t cmp_mode, const bufferlist& data) { - int s = ops.size(); - ops.resize(s+1); - ops[s].op.op = op; - ops[s].op.xattr.name_len = (name ? strlen(name) : 0); - ops[s].op.xattr.value_len = data.length(); - ops[s].op.xattr.cmp_op = cmp_op; - ops[s].op.xattr.cmp_mode = cmp_mode; + OSDOp& osd_op = add_op(op); + osd_op.op.op = op; + osd_op.op.xattr.name_len = (name ? strlen(name) : 0); + osd_op.op.xattr.value_len = data.length(); + osd_op.op.xattr.cmp_op = cmp_op; + osd_op.op.xattr.cmp_mode = cmp_mode; if (name) - ops[s].indata.append(name); - ops[s].indata.append(data); + osd_op.indata.append(name); + osd_op.indata.append(data); } void add_call(int op, const char *cname, const char *method, bufferlist &indata) { - int s = ops.size(); - ops.resize(s+1); - ops[s].op.op = op; - ops[s].op.cls.class_len = strlen(cname); - ops[s].op.cls.method_len = strlen(method); - ops[s].op.cls.indata_len = indata.length(); - ops[s].indata.append(cname, ops[s].op.cls.class_len); - ops[s].indata.append(method, ops[s].op.cls.method_len); - ops[s].indata.append(indata); + OSDOp& osd_op = add_op(op); + osd_op.op.op = op; + osd_op.op.cls.class_len = strlen(cname); + osd_op.op.cls.method_len = strlen(method); + osd_op.op.cls.indata_len = indata.length(); + osd_op.indata.append(cname, osd_op.op.cls.class_len); + osd_op.indata.append(method, osd_op.op.cls.method_len); + osd_op.indata.append(indata); } void add_watch(int op, uint64_t cookie, uint64_t ver, uint8_t flag, bufferlist& inbl) { - int s = ops.size(); - ops.resize(s+1); - ops[s].op.op = op; - ops[s].op.watch.cookie = cookie; - ops[s].op.watch.ver = ver; - ops[s].op.watch.flag = flag; - ops[s].indata.append(inbl); + OSDOp& osd_op = add_op(op); + osd_op.op.op = op; + osd_op.op.watch.cookie = cookie; + osd_op.op.watch.ver = ver; + osd_op.op.watch.flag = flag; + osd_op.indata.append(inbl); } void add_pgls(int op, uint64_t count, collection_list_handle_t cookie, epoch_t start_epoch) { - int s = ops.size(); - ops.resize(s+1); - ops[s].op.op = op; - ops[s].op.pgls.count = count; - ops[s].op.pgls.start_epoch = start_epoch; - ::encode(cookie, ops[s].indata); + OSDOp& osd_op = add_op(op); + osd_op.op.op = op; + osd_op.op.pgls.count = count; + osd_op.op.pgls.start_epoch = start_epoch; + ::encode(cookie, osd_op.indata); } void add_pgls_filter(int op, uint64_t count, bufferlist& filter, collection_list_handle_t cookie, epoch_t start_epoch) { - int s = ops.size(); - ops.resize(s+1); - ops[s].op.op = op; - ops[s].op.pgls.count = count; - ops[s].op.pgls.start_epoch = start_epoch; + OSDOp& osd_op = add_op(op); + osd_op.op.op = op; + osd_op.op.pgls.count = count; + osd_op.op.pgls.start_epoch = start_epoch; string cname = "pg"; string mname = "filter"; - ::encode(cname, ops[s].indata); - ::encode(mname, ops[s].indata); - ::encode(cookie, ops[s].indata); - ops[s].indata.append(filter); + ::encode(cname, osd_op.indata); + ::encode(mname, osd_op.indata); + ::encode(cookie, osd_op.indata); + osd_op.indata.append(filter); } // ------ -- 2.47.3