From: Sage Weil Date: Mon, 10 Nov 2008 04:15:57 +0000 (-0800) Subject: objecter: destructively take ops[], bufferlist passed to read(), modify(). X-Git-Tag: v0.5~38 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=de0bdde45be1f5ee86567ffb4ab42ebe8d75a971;p=ceph.git objecter: destructively take ops[], bufferlist passed to read(), modify(). Small optimization. --- diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index 85addf8edcb3..63be7448ef7f 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -84,9 +84,11 @@ class Objecter { int inc_lock; ReadOp(object_t o, ceph_object_layout& ol, vector& op, int f, Context *of) : - oid(o), layout(ol), ops(op), + oid(o), layout(ol), pbl(0), psize(0), flags(f), onfinish(of), - tid(0), attempts(0), inc_lock(-1) { } + tid(0), attempts(0), inc_lock(-1) { + ops.swap(op); + } }; @@ -106,8 +108,10 @@ class Objecter { ModifyOp(object_t o, ceph_object_layout& l, vector& op, const SnapContext& sc, int f, Context *ac, Context *co) : - oid(o), layout(l), snapc(sc), ops(op), flags(f), onack(ac), oncommit(co), - tid(0), attempts(0), inc_lock(-1) { } + oid(o), layout(l), snapc(sc), flags(f), onack(ac), oncommit(co), + tid(0), attempts(0), inc_lock(-1) { + ops.swap(op); + } }; @@ -210,7 +214,7 @@ class Objecter { const SnapContext& snapc, bufferlist &bl, int flags, Context *onack, Context *oncommit) { ModifyOp *wr = new ModifyOp(oid, ol, ops, snapc, flags, onack, oncommit); - wr->bl = bl; + wr->bl.swap(bl); return modify_submit(wr); }