]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix not using specified pool name
authorKen Iizawa <iizawa.ken@fujitsu.com>
Thu, 4 Mar 2021 08:11:18 +0000 (17:11 +0900)
committerKen Iizawa <iizawa.ken@fujitsu.com>
Sat, 3 Apr 2021 16:46:09 +0000 (01:46 +0900)
Fixes: https://tracker.ceph.com/issues/48182
Signed-off-by: Ken Iizawa <iizawa.ken@fujitsu.com>
src/osd/PrimaryLogPG.cc

index e084605f77113a0ffe5804bf08ce296bb126eb54..a016d27c9735d95a6571990d85619e77d1704a2e 100644 (file)
@@ -10109,7 +10109,9 @@ int PrimaryLogPG::start_cls_gather(OpContext *ctx, std::map<std::string, bufferl
 {
   OpRequestRef op = ctx->op;
   MOSDOp *m = static_cast<MOSDOp*>(op->get_nonconst_req());
-  object_locator_t oloc = m->get_object_locator();
+
+  auto pool_id = osd->objecter->with_osdmap(std::mem_fn(&OSDMap::lookup_pg_pool_name), pool);
+  object_locator_t oloc(pool_id);
 
   ObjectState& obs = ctx->new_obs;
   object_info_t& oi = obs.oi;
@@ -10125,7 +10127,6 @@ int PrimaryLogPG::start_cls_gather(OpContext *ctx, std::map<std::string, bufferl
     std::string oid = it->first;
     ObjectOperation obj_op;
     obj_op.call(cls, method, inbl);
-    int64_t ret = osd->objecter->with_osdmap(std::mem_fn(&OSDMap::lookup_pg_pool_name), pool);
     uint32_t flags = 0;
     ceph_tid_t tid = osd->objecter->read(
                                         object_t(oid), oloc, obj_op,