]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix index completion
authorYehuda Sadeh <yehuda@redhat.com>
Fri, 2 Jun 2017 21:42:13 +0000 (14:42 -0700)
committerYehuda Sadeh <yehuda@redhat.com>
Mon, 5 Jun 2017 20:18:03 +0000 (13:18 -0700)
Was missing bucket complete op, only had the guard (bad merge?).
Pass zones_trace as pointer and treat it as optional param (which
it is).

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/cls/rgw/cls_rgw_client.cc
src/cls/rgw/cls_rgw_client.h
src/rgw/rgw_rados.cc
src/test/cls_rgw/test_cls_rgw.cc

index d3a0df776b3011374b99a174e4fbf179309b70e3..13385241e3bf711a8e4db87d1f22c6ea0b9d36d0 100644 (file)
@@ -173,7 +173,7 @@ void cls_rgw_bucket_complete_op(ObjectWriteOperation& o, RGWModifyOp op, string&
                                 rgw_bucket_dir_entry_meta& dir_meta,
                                list<cls_rgw_obj_key> *remove_objs, bool log_op,
                                 uint16_t bilog_flags,
-                                rgw_zone_setzones_trace)
+                                rgw_zone_set *zones_trace)
 {
 
   bufferlist in;
@@ -187,7 +187,9 @@ void cls_rgw_bucket_complete_op(ObjectWriteOperation& o, RGWModifyOp op, string&
   call.bilog_flags = bilog_flags;
   if (remove_objs)
     call.remove_objs = *remove_objs;
-  call.zones_trace = zones_trace;
+  if (zones_trace) {
+    call.zones_trace = *zones_trace;
+  }
   ::encode(call, in);
   o.exec(RGW_CLASS, RGW_BUCKET_COMPLETE_OP, in);
 }
index 90f0d6f31643be2af37e98a4b6019fad5c54a86f..7d394d6c284a8a3f3f1c1a71ac9d65b8258154c1 100644 (file)
@@ -320,7 +320,7 @@ void cls_rgw_bucket_complete_op(librados::ObjectWriteOperation& o, RGWModifyOp o
                                 const cls_rgw_obj_key& key,
                                 rgw_bucket_dir_entry_meta& dir_meta,
                                list<cls_rgw_obj_key> *remove_objs, bool log_op,
-                                uint16_t bilog_op, rgw_zone_setzones_trace);
+                                uint16_t bilog_op, rgw_zone_set *zones_trace);
 
 void cls_rgw_remove_obj(librados::ObjectWriteOperation& o, list<string>& keep_attr_prefixes);
 void cls_rgw_obj_store_pg_ver(librados::ObjectWriteOperation& o, const string& attr);
index b86a08c42783236eb80ef7e3f824f5ae3e19d88a..2866323583a04666199780b774100d01a2cb7e60 100644 (file)
@@ -3462,7 +3462,7 @@ int RGWIndexCompletionThread::process()
                              librados::ObjectWriteOperation o;
                              cls_rgw_guard_bucket_resharding(o, -ERR_BUSY_RESHARDING);
                              cls_rgw_bucket_complete_op(o, c->op, c->tag, c->ver, c->key, c->dir_meta, &c->remove_objs,
-                                                        c->log_op, c->bilog_op, c->zones_trace);
+                                                        c->log_op, c->bilog_op, &c->zones_trace);
 
                              return bs->index_ctx.operate(bs->bucket_obj, &o);
                              });
@@ -12530,7 +12530,8 @@ int RGWRados::cls_obj_complete_op(BucketShard& bs, const rgw_obj& obj, RGWModify
   ver.epoch = epoch;
   cls_rgw_obj_key key(ent.key.name, ent.key.instance);
   cls_rgw_guard_bucket_resharding(o, -ERR_BUSY_RESHARDING);
-
+  cls_rgw_bucket_complete_op(o, op, tag, ver, key, dir_meta, remove_objs,
+                             get_zone().log_data, bilog_flags, _zones_trace);
   complete_op_data *arg;
   index_completion_manager->create_completion(obj, op, tag, ver, key, dir_meta, remove_objs,
                                               get_zone().log_data, bilog_flags, _zones_trace, &arg);
index 5b345e43f93ec8d1b2d88ebcc7b9b181c03b8128..6c7dbaf5235b1d24cce08414043a4f75f9e0bf6b 100644 (file)
@@ -102,8 +102,7 @@ void index_complete(OpMgr& mgr, librados::IoCtx& ioctx, string& oid, RGWModifyOp
   ver.pool = ioctx.get_id();
   ver.epoch = epoch;
   meta.accounted_size = meta.size;
-  rgw_zone_set zones_trace;
-  cls_rgw_bucket_complete_op(*op, index_op, tag, ver, key, meta, NULL, true, 0, zones_trace);
+  cls_rgw_bucket_complete_op(*op, index_op, tag, ver, key, meta, nullptr, true, 0, nullptr);
   ASSERT_EQ(0, ioctx.operate(oid, op));
 }