]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PrimaryLogPG: make_writeable nit fixes 46941/head
authorMatan Breizman <mbreizma@redhat.com>
Sun, 3 Jul 2022 12:18:58 +0000 (12:18 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Tue, 5 Jul 2022 14:42:32 +0000 (14:42 +0000)
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/osd/PrimaryLogPG.cc
src/osd/PrimaryLogPG.h

index 58a065f96dc79352aa10eda352884c6340b5af07..c4153bd0cb0ff937e50826b760470c88a633257f 100644 (file)
@@ -8485,7 +8485,7 @@ void PrimaryLogPG::_do_rollback_to(OpContext *ctx, ObjectContextRef rollback_to,
 void PrimaryLogPG::_make_clone(
   OpContext *ctx,
   PGTransaction* t,
-  ObjectContextRef obc,
+  ObjectContextRef clone_obc,
   const hobject_t& head, const hobject_t& coid,
   object_info_t *poi)
 {
@@ -8493,8 +8493,8 @@ void PrimaryLogPG::_make_clone(
   encode(*poi, bv, get_osdmap()->get_features(CEPH_ENTITY_TYPE_OSD, nullptr));
 
   t->clone(coid, head);
-  setattr_maybe_cache(obc, t, OI_ATTR, bv);
-  rmattr_maybe_cache(obc, t, SS_ATTR);
+  setattr_maybe_cache(clone_obc, t, OI_ATTR, bv);
+  rmattr_maybe_cache(clone_obc, t, SS_ATTR);
 }
 
 void PrimaryLogPG::make_writeable(OpContext *ctx)
@@ -8555,14 +8555,12 @@ void PrimaryLogPG::make_writeable(OpContext *ctx)
     hobject_t coid = soid;
     coid.snap = snapc.seq;
 
-    unsigned l;
-    for (l = 1;
-        l < snapc.snaps.size() && snapc.snaps[l] > ctx->new_snapset.seq;
-        l++) ;
-
-    vector<snapid_t> snaps(l);
-    for (unsigned i=0; i<l; i++)
-      snaps[i] = snapc.snaps[i];
+    const auto snaps = [&] {
+      auto last = find_if_not(
+        begin(snapc.snaps), end(snapc.snaps),
+        [&](snapid_t snap_id) { return snap_id > ctx->new_snapset.seq; });
+      return vector<snapid_t>{begin(snapc.snaps), last};
+    }();
 
     // prepare clone
     object_info_t static_snap_oi(coid);
@@ -8626,8 +8624,9 @@ void PrimaryLogPG::make_writeable(OpContext *ctx)
     // clone_overlap should contain an entry for each clone
     // (an empty interval_set if there is no overlap)
     ctx->new_snapset.clone_overlap[coid.snap];
-    if (ctx->obs->oi.size)
+    if (ctx->obs->oi.size) {
       ctx->new_snapset.clone_overlap[coid.snap].insert(0, ctx->obs->oi.size);
+    }
 
     // log clone
     dout(10) << " cloning v " << ctx->obs->oi.version
index 2605c992bca332f6939ca0aed1a5e4cd4bd0b83b..b60fd36c85a5e5237c691620114933c25f0ec1e1 100644 (file)
@@ -1152,7 +1152,7 @@ protected:
   void _make_clone(
     OpContext *ctx,
     PGTransaction* t,
-    ObjectContextRef obc,
+    ObjectContextRef clone_obc,
     const hobject_t& head, const hobject_t& coid,
     object_info_t *poi);
   void execute_ctx(OpContext *ctx);