From bdaf7740daa4a1185b57e84d277dad3b0dea47e3 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 22 Feb 2017 12:02:53 -0600 Subject: [PATCH] osd/osd_types: rename object_info_t::snaps -> legacy_snaps This will make it easier to identify users of this field that need to conditionally use either the old legacy_snaps or the new SnapSet::clone_snaps vector. Signed-off-by: Sage Weil --- src/osd/PG.cc | 2 +- src/osd/PrimaryLogPG.cc | 36 ++++++++++++++++-------------- src/osd/osd_types.cc | 15 +++++++------ src/osd/osd_types.h | 2 +- src/tools/ceph_objectstore_tool.cc | 2 +- 5 files changed, 30 insertions(+), 27 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index a6fde97beb0..cdc52784dba 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -3971,7 +3971,7 @@ void PG::_scan_snaps(ScrubMap &smap) } catch(...) { continue; } - set oi_snaps(oi.snaps.begin(), oi.snaps.end()); + set oi_snaps(oi.legacy_snaps.begin(), oi.legacy_snaps.end()); set cur_snaps; int r = snap_mapper.get_snaps(hoid, &cur_snaps); if (r != 0 && r != -ENOENT) { diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index de0808378a7..c4b152b35ea 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -334,11 +334,11 @@ void PrimaryLogPG::on_local_recover( ObjectRecoveryInfo recovery_info(_recovery_info); clear_object_snap_mapping(t, hoid); if (recovery_info.soid.snap < CEPH_NOSNAP) { - assert(recovery_info.oi.snaps.size()); + assert(recovery_info.oi.legacy_snaps.size()); OSDriver::OSTransaction _t(osdriver.get_transaction(t)); set snaps( - recovery_info.oi.snaps.begin(), - recovery_info.oi.snaps.end()); + recovery_info.oi.legacy_snaps.begin(), + recovery_info.oi.legacy_snaps.end()); snap_mapper.add_oid( recovery_info.soid, snaps, @@ -3531,7 +3531,7 @@ PrimaryLogPG::OpContextUPtr PrimaryLogPG::trim_object(bool first, const hobject_ assert(snapset_obc); object_info_t &coi = obc->obs.oi; - set old_snaps(coi.snaps.begin(), coi.snaps.end()); + set old_snaps(coi.legacy_snaps.begin(), coi.legacy_snaps.end()); if (old_snaps.empty()) { osd->clog->error() << __func__ << " No object info snaps for " << coid; return NULL; @@ -3655,7 +3655,7 @@ PrimaryLogPG::OpContextUPtr PrimaryLogPG::trim_object(bool first, const hobject_ // save adjusted snaps for this object dout(10) << coid << " snaps " << old_snaps << " -> " << new_snaps << dendl; - coi.snaps = vector(new_snaps.rbegin(), new_snaps.rend()); + coi.legacy_snaps = vector(new_snaps.rbegin(), new_snaps.rend()); coi.prior_version = coi.version; coi.version = ctx->at_version; @@ -5235,8 +5235,9 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector& ops) } break; } - for (vector::reverse_iterator p = clone_obc->obs.oi.snaps.rbegin(); - p != clone_obc->obs.oi.snaps.rend(); + for (vector::reverse_iterator p = + clone_obc->obs.oi.legacy_snaps.rbegin(); + p != clone_obc->obs.oi.legacy_snaps.rend(); ++p) { ci.snaps.push_back(*p); } @@ -6719,7 +6720,7 @@ void PrimaryLogPG::make_writeable(OpContext *ctx) snap_oi->version = ctx->at_version; snap_oi->prior_version = ctx->obs->oi.version; snap_oi->copy_user_bits(ctx->obs->oi); - snap_oi->snaps = snaps; + snap_oi->legacy_snaps = snaps; _make_clone(ctx, ctx->op_t.get(), ctx->clone_obc, soid, coid, snap_oi); @@ -7138,9 +7139,9 @@ void PrimaryLogPG::finish_ctx(OpContext *ctx, int log_op_type, bool maintain_ssc case pg_log_entry_t::MODIFY: case pg_log_entry_t::PROMOTE: case pg_log_entry_t::CLEAN: - dout(20) << __func__ << " encoding snaps " << ctx->new_obs.oi.snaps + dout(20) << __func__ << " encoding snaps " << ctx->new_obs.oi.legacy_snaps << dendl; - ::encode(ctx->new_obs.oi.snaps, ctx->log.back().snaps); + ::encode(ctx->new_obs.oi.legacy_snaps, ctx->log.back().snaps); break; default: break; @@ -7307,7 +7308,7 @@ int PrimaryLogPG::fill_in_copy_get( reply_obj.size = oi.size; reply_obj.mtime = oi.mtime; if (soid.snap < CEPH_NOSNAP) { - reply_obj.snaps = oi.snaps; + reply_obj.snaps = oi.legacy_snaps; } else { assert(obc->ssc); reply_obj.snap_seq = obc->ssc->snapset.seq; @@ -8041,8 +8042,8 @@ void PrimaryLogPG::finish_promote(int r, CopyResults *results, tctx->new_obs.oi.truncate_size = results->truncate_size; if (soid.snap != CEPH_NOSNAP) { - tctx->new_obs.oi.snaps = results->snaps; - assert(!tctx->new_obs.oi.snaps.empty()); + tctx->new_obs.oi.legacy_snaps = results->snaps; + assert(!tctx->new_obs.oi.legacy_snaps.empty()); assert(obc->ssc->snapset.clone_size.count(soid.snap)); assert(obc->ssc->snapset.clone_size[soid.snap] == results->object_size); @@ -8281,7 +8282,7 @@ int PrimaryLogPG::start_flush( snapc.seq = snapset.seq; snapc.snaps = snapset.snaps; } else { - snapid_t min_included_snap = oi.snaps.back(); + snapid_t min_included_snap = oi.legacy_snaps.back(); snapc = snapset.get_ssc_as_of(min_included_snap - 1); } @@ -9539,10 +9540,11 @@ int PrimaryLogPG::find_object_context(const hobject_t& oid, ssc = 0; // clone - dout(20) << "find_object_context " << soid << " snaps " << obc->obs.oi.snaps + dout(20) << "find_object_context " << soid + << " snaps " << obc->obs.oi.legacy_snaps << dendl; - snapid_t first = obc->obs.oi.snaps[obc->obs.oi.snaps.size()-1]; - snapid_t last = obc->obs.oi.snaps[0]; + snapid_t first = obc->obs.oi.legacy_snaps[obc->obs.oi.legacy_snaps.size()-1]; + snapid_t last = obc->obs.oi.legacy_snaps[0]; if (first <= oid.snap) { dout(20) << "find_object_context " << soid << " [" << first << "," << last << "] contains " << oid.snap << " -- HIT " << obc->obs << dendl; diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index dbdea1f22ab..5ca5a5645bc 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -4954,7 +4954,7 @@ void object_info_t::encode(bufferlist& bl, uint64_t features) const if (soid.snap == CEPH_NOSNAP) ::encode(osd_reqid_t(), bl); // used to be wrlock_by else - ::encode(snaps, bl); + ::encode(legacy_snaps, bl); ::encode(truncate_seq, bl); ::encode(truncate_size, bl); ::encode(is_lost(), bl); @@ -4996,7 +4996,7 @@ void object_info_t::decode(bufferlist::iterator& bl) osd_reqid_t wrlock_by; ::decode(wrlock_by, bl); } else { - ::decode(snaps, bl); + ::decode(legacy_snaps, bl); } ::decode(truncate_seq, bl); ::decode(truncate_size, bl); @@ -5078,9 +5078,10 @@ void object_info_t::dump(Formatter *f) const f->dump_stream("local_mtime") << local_mtime; f->dump_unsigned("lost", (int)is_lost()); f->dump_unsigned("flags", (int)flags); - f->open_array_section("snaps"); - for (vector::const_iterator p = snaps.begin(); p != snaps.end(); ++p) - f->dump_unsigned("snap", *p); + f->open_array_section("legacy_snaps"); + for (auto s : legacy_snaps) { + f->dump_unsigned("snap", s); + } f->close_section(); f->dump_unsigned("truncate_seq", truncate_seq); f->dump_unsigned("truncate_size", truncate_size); @@ -5113,8 +5114,8 @@ ostream& operator<<(ostream& out, const object_info_t& oi) { out << oi.soid << "(" << oi.version << " " << oi.last_reqid; - if (oi.soid.snap != CEPH_NOSNAP) - out << " " << oi.snaps; + if (oi.soid.snap != CEPH_NOSNAP && !oi.legacy_snaps.empty()) + out << " " << oi.legacy_snaps; if (oi.flags) out << " " << oi.get_flag_string(); out << " s " << oi.size; diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 2489d02ce41..1be4a07745e 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -4440,7 +4440,7 @@ struct object_info_t { return get_flag_string(flags); } - vector snaps; // [clone] + vector legacy_snaps; // [clone] pre-luminous; moved to SnapSet uint64_t truncate_seq, truncate_size; diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index e42a39a8235..5fc117209ec 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -840,7 +840,7 @@ int get_attrs(ObjectStore *store, coll_t coll, ghobject_t hoid, cerr << "object_info " << oi << std::endl; OSDriver::OSTransaction _t(driver.get_transaction(t)); - set oi_snaps(oi.snaps.begin(), oi.snaps.end()); + set oi_snaps(oi.legacy_snaps.begin(), oi.legacy_snaps.end()); snap_mapper.add_oid(hoid.hobj, oi_snaps, &_t); } }