]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: remove guard_reshard in bucket_index_read_olh_log 49775/head
authorliangmingyuan <liangmingyuan@baidu.com>
Thu, 5 Jan 2023 12:13:18 +0000 (20:13 +0800)
committerliangmingyuan <liangmingyuan@baidu.com>
Wed, 18 Jan 2023 03:13:33 +0000 (11:13 +0800)
Signed-off-by: Mingyuan Liang <liangmingyuan@baidu.com>
src/rgw/rgw_rados.cc

index bc6c34e68bffb563f3e6f7c98567ea332b2899a6..753fda177f494daea768859bc489071a8745743d 100644 (file)
@@ -7063,33 +7063,25 @@ int RGWRados::bucket_index_read_olh_log(const DoutPrefixProvider *dpp,
 
   cls_rgw_obj_key key(obj_instance.key.get_index_key_name(), string());
 
-  ret = guard_reshard(dpp, &bs, obj_instance, bucket_info,
-                     [&](BucketShard *bs) -> int {
-                       auto& ref = bs->bucket_obj.get_ref();
-                       ObjectReadOperation op;
-                       cls_rgw_guard_bucket_resharding(op, -ERR_BUSY_RESHARDING);
-
-                        rgw_cls_read_olh_log_ret log_ret;
-                        int op_ret = 0;
-                       cls_rgw_get_olh_log(op, key, ver_marker, olh_tag, log_ret, op_ret); 
-                        bufferlist outbl;
-                        int r =  rgw_rados_operate(dpp, ref.pool.ioctx(), ref.obj.oid, &op, &outbl, null_yield);
-                        if (r < 0) {
-                          return r;
-                        }
-                        if (op_ret < 0) {
-                          return op_ret;
-                        }
+  auto& shard_ref = bs.bucket_obj.get_ref();
+  ObjectReadOperation op;
 
-                        *log = std::move(log_ret.log);
-                        *is_truncated = log_ret.is_truncated;
-                        return r;
-                     });
-  if (ret < 0) {
-    ldpp_dout(dpp, 20) << "cls_rgw_get_olh_log() returned r=" << r << dendl;
-    return ret;
+  rgw_cls_read_olh_log_ret log_ret;
+  int op_ret = 0;
+  cls_rgw_get_olh_log(op, key, ver_marker, olh_tag, log_ret, op_ret); 
+  bufferlist outbl;
+  r =  rgw_rados_operate(dpp, shard_ref.pool.ioctx(), shard_ref.obj.oid, &op, &outbl, null_yield);
+  if (r < 0) {
+    return r;
+  }
+  if (op_ret < 0) {
+    ldpp_dout(dpp, 20) << "cls_rgw_get_olh_log() returned op_ret=" << op_ret << dendl;
+    return op_ret;
   }
 
+  *log = std::move(log_ret.log);
+  *is_truncated = log_ret.is_truncated;
+
   return 0;
 }