From: Patrick Donnelly Date: Thu, 14 Feb 2019 18:55:41 +0000 (-0800) Subject: mds: reorg LogEvent def X-Git-Tag: v14.1.0~99^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e46736e053a9145f91e3d4ebd55ad9b3d09246af;p=ceph-ci.git mds: reorg LogEvent def To follow code-style guidelines and protect some members. Signed-off-by: Patrick Donnelly --- diff --git a/src/mds/LogEvent.h b/src/mds/LogEvent.h index f9133b9aac4..73e2438f627 100644 --- a/src/mds/LogEvent.h +++ b/src/mds/LogEvent.h @@ -53,26 +53,14 @@ class EMetaBlob; // generic log event class LogEvent { public: - typedef __u32 EventType; - -private: - EventType _type; - uint64_t _start_off; - static std::unique_ptr decode_event(bufferlist::const_iterator&, EventType); - -protected: - utime_t stamp; - friend class MDLog; + typedef __u32 EventType; -public: - LogSegment *_segment; - - explicit LogEvent(int t) - : _type(t), _start_off(0), _segment(0) { } + LogEvent() = delete; + explicit LogEvent(int t) : _type(t) {} LogEvent(const LogEvent&) = delete; - virtual ~LogEvent() { } LogEvent& operator=(const LogEvent&) = delete; + virtual ~LogEvent() {} string get_type_str() const; static EventType str_to_type(std::string_view str); @@ -120,8 +108,20 @@ public: */ virtual EMetaBlob *get_metablob() { return NULL; } +protected: + utime_t stamp; + + LogSegment* get_segment() { return _segment; } + LogSegment const* get_segment() const { return _segment; } + private: static const std::map types; + + static std::unique_ptr decode_event(bufferlist::const_iterator&, EventType); + + EventType _type = 0; + uint64_t _start_off = 0; + LogSegment *_segment = nullptr; }; inline ostream& operator<<(ostream& out, const LogEvent &le) { diff --git a/src/mds/journal.cc b/src/mds/journal.cc index 4a9a51ebd47..4eec4ada2b1 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -1607,9 +1607,9 @@ void EMetaBlob::replay(MDSRank *mds, LogSegment *logseg, MDSlaveUpdate *slaveup) void ESession::update_segment() { - _segment->sessionmapv = cmapv; + get_segment()->sessionmapv = cmapv; if (inos.size() && inotablev) - _segment->inotablev = inotablev; + get_segment()->inotablev = inotablev; } void ESession::replay(MDSRank *mds) @@ -1769,7 +1769,7 @@ void ESessions::generate_test_instances(list& ls) void ESessions::update_segment() { - _segment->sessionmapv = cmapv; + get_segment()->sessionmapv = cmapv; } void ESessions::replay(MDSRank *mds) @@ -1837,7 +1837,7 @@ void ETableServer::generate_test_instances(list& ls) void ETableServer::update_segment() { - _segment->tablev[table] = version; + get_segment()->tablev[table] = version; } void ETableServer::replay(MDSRank *mds) @@ -1946,7 +1946,7 @@ void ETableClient::replay(MDSRank *mds) /* void ESnap::update_segment() { - _segment->tablev[TABLE_SNAP] = version; + get_segment()->tablev[TABLE_SNAP] = version; } void ESnap::replay(MDSRank *mds) @@ -2027,24 +2027,26 @@ void EUpdate::generate_test_instances(list& ls) void EUpdate::update_segment() { - metablob.update_segment(_segment); + auto&& segment = get_segment(); + metablob.update_segment(segment); if (client_map.length()) - _segment->sessionmapv = cmapv; + segment->sessionmapv = cmapv; if (had_slaves) - _segment->uncommitted_masters.insert(reqid); + segment->uncommitted_masters.insert(reqid); } void EUpdate::replay(MDSRank *mds) { - metablob.replay(mds, _segment); + auto&& segment = get_segment(); + metablob.replay(mds, segment); if (had_slaves) { dout(10) << "EUpdate.replay " << reqid << " had slaves, expecting a matching ECommitted" << dendl; - _segment->uncommitted_masters.insert(reqid); + segment->uncommitted_masters.insert(reqid); set slaves; - mds->mdcache->add_uncommitted_master(reqid, _segment, slaves, true); + mds->mdcache->add_uncommitted_master(reqid, segment, slaves, true); } if (client_map.length()) { @@ -2122,7 +2124,8 @@ void EOpen::update_segment() void EOpen::replay(MDSRank *mds) { dout(10) << "EOpen.replay " << dendl; - metablob.replay(mds, _segment); + auto&& segment = get_segment(); + metablob.replay(mds, segment); // note which segments inodes belong to, so we don't have to start rejournaling them for (const auto &ino : inos) { @@ -2131,7 +2134,7 @@ void EOpen::replay(MDSRank *mds) dout(0) << "EOpen.replay ino " << ino << " not in metablob" << dendl; ceph_assert(in); } - _segment->open_files.push_back(&in->item_open_file); + segment->open_files.push_back(&in->item_open_file); } for (const auto &vino : snap_inos) { CInode *in = mds->mdcache->get_inode(vino); @@ -2139,7 +2142,7 @@ void EOpen::replay(MDSRank *mds) dout(0) << "EOpen.replay ino " << vino << " not in metablob" << dendl; ceph_assert(in); } - _segment->open_files.push_back(&in->item_open_file); + segment->open_files.push_back(&in->item_open_file); } } @@ -2433,12 +2436,13 @@ void ESlaveUpdate::generate_test_instances(list& ls) void ESlaveUpdate::replay(MDSRank *mds) { MDSlaveUpdate *su; + auto&& segment = get_segment(); switch (op) { case ESlaveUpdate::OP_PREPARE: dout(10) << "ESlaveUpdate.replay prepare " << reqid << " for mds." << master << ": applying commit, saving rollback info" << dendl; - su = new MDSlaveUpdate(origop, rollback, _segment->slave_updates); - commit.replay(mds, _segment, su); + su = new MDSlaveUpdate(origop, rollback, segment->slave_updates); + commit.replay(mds, segment, su); mds->mdcache->add_uncommitted_slave_update(reqid, master, su); break; @@ -2456,7 +2460,7 @@ void ESlaveUpdate::replay(MDSRank *mds) case ESlaveUpdate::OP_ROLLBACK: dout(10) << "ESlaveUpdate.replay abort " << reqid << " for mds." << master << ": applying rollback commit blob" << dendl; - commit.replay(mds, _segment); + commit.replay(mds, segment); su = mds->mdcache->get_uncommitted_slave_update(reqid, master); if (su) mds->mdcache->finish_uncommitted_slave_update(reqid, master); @@ -2637,7 +2641,7 @@ void ESubtreeMap::replay(MDSRank *mds) // first, stick the spanning tree in my cache //metablob.print(*_dout); - metablob.replay(mds, _segment); + metablob.replay(mds, get_segment()); // restore import/export maps for (map >::iterator p = subtrees.begin(); @@ -2678,9 +2682,10 @@ void EFragment::replay(MDSRank *mds) // refragment anything we already have in the cache. CInode *in = mds->mdcache->get_inode(ino); + auto&& segment = get_segment(); switch (op) { case OP_PREPARE: - mds->mdcache->add_uncommitted_fragment(dirfrag_t(ino, basefrag), bits, orig_frags, _segment, &rollback); + mds->mdcache->add_uncommitted_fragment(dirfrag_t(ino, basefrag), bits, orig_frags, segment, &rollback); if (in) mds->mdcache->adjust_dir_fragments(in, basefrag, bits, resultfrags, waiters, true); @@ -2711,7 +2716,7 @@ void EFragment::replay(MDSRank *mds) ceph_abort(); } - metablob.replay(mds, _segment); + metablob.replay(mds, segment); if (in && g_conf()->mds_debug_frag) in->verify_dirfrags(); } @@ -2790,7 +2795,8 @@ void dirfrag_rollback::decode(bufferlist::const_iterator &bl) void EExport::replay(MDSRank *mds) { dout(10) << "EExport.replay " << base << dendl; - metablob.replay(mds, _segment); + auto&& segment = get_segment(); + metablob.replay(mds, segment); CDir *dir = mds->mdcache->get_dirfrag(base); ceph_assert(dir); @@ -2861,14 +2867,15 @@ void EExport::generate_test_instances(list& ls) void EImportStart::update_segment() { - _segment->sessionmapv = cmapv; + get_segment()->sessionmapv = cmapv; } void EImportStart::replay(MDSRank *mds) { dout(10) << "EImportStart.replay " << base << " bounds " << bounds << dendl; //metablob.print(*_dout); - metablob.replay(mds, _segment); + auto&& segment = get_segment(); + metablob.replay(mds, segment); // put in ambiguous import list mds->mdcache->add_ambiguous_import(base, bounds);