]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
objecter: fix add_*() calls to use proper helper
authorSage Weil <sage.weil@dreamhost.com>
Fri, 13 Jan 2012 22:50:55 +0000 (14:50 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Fri, 13 Jan 2012 22:50:55 +0000 (14:50 -0800)
The helper resizes the other vectors; need that everywhere.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/osdc/Objecter.h

index f4549940d77d50268e5728135bf3577585bd4299..346a347f6d072ccef3cbe6b8b5c7cc4455b01383 100644 (file)
@@ -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);
   }
 
   // ------