]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cleanup: rbd: to set omaps in a batch way in create(). 9981/head
authorDongsheng Yang <dongsheng.yang@easystack.cn>
Tue, 28 Jun 2016 08:34:49 +0000 (04:34 -0400)
committerDongsheng Yang <dongsheng.yang@easystack.cn>
Tue, 28 Jun 2016 08:35:02 +0000 (04:35 -0400)
Signed-off-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
src/cls/rbd/cls_rbd.cc

index ffa7523b5323276ccd059035f7353c4abcf7570e..db6ad3345d04b1976d171109dfdec45aebf4264f 100644 (file)
@@ -295,33 +295,24 @@ int create(cls_method_context_t hctx, bufferlist *in, bufferlist *out)
   }
 
   bufferlist sizebl;
-  ::encode(size, sizebl);
-  r = cls_cxx_map_set_val(hctx, "size", &sizebl);
-  if (r < 0)
-    return r;
-
   bufferlist orderbl;
-  ::encode(order, orderbl);
-  r = cls_cxx_map_set_val(hctx, "order", &orderbl);
-  if (r < 0)
-    return r;
-
   bufferlist featuresbl;
-  ::encode(features, featuresbl);
-  r = cls_cxx_map_set_val(hctx, "features", &featuresbl);
-  if (r < 0)
-    return r;
-
   bufferlist object_prefixbl;
-  ::encode(object_prefix, object_prefixbl);
-  r = cls_cxx_map_set_val(hctx, "object_prefix", &object_prefixbl);
-  if (r < 0)
-    return r;
-
   bufferlist snap_seqbl;
   uint64_t snap_seq = 0;
+  ::encode(size, sizebl);
+  ::encode(order, orderbl);
+  ::encode(features, featuresbl);
+  ::encode(object_prefix, object_prefixbl);
   ::encode(snap_seq, snap_seqbl);
-  r = cls_cxx_map_set_val(hctx, "snap_seq", &snap_seqbl);
+
+  map<string, bufferlist> omap_vals;
+  omap_vals["size"] = sizebl;
+  omap_vals["order"] = orderbl;
+  omap_vals["features"] = featuresbl;
+  omap_vals["object_prefix"] = object_prefixbl;
+  omap_vals["snap_seq"] = snap_seqbl;
+  r = cls_cxx_map_set_vals(hctx, &omap_vals);
   if (r < 0)
     return r;