From: VARSHA RAO Date: Thu, 19 Dec 2019 14:26:28 +0000 (+0530) Subject: mds: Reorganize class members in SnapServer header X-Git-Tag: v15.1.0~74^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8108fa34dda61ee03841731634eaf2b48989cb20;p=ceph.git mds: Reorganize class members in SnapServer header Fixes: https://tracker.ceph.com/issues/43387 Signed-off-by: Varsha Rao --- diff --git a/src/mds/SnapServer.h b/src/mds/SnapServer.h index 8ea168802bb3..5b38f55587fc 100644 --- a/src/mds/SnapServer.h +++ b/src/mds/SnapServer.h @@ -24,23 +24,62 @@ class MDSRank; class MonClient; class SnapServer : public MDSTableServer { -protected: - MonClient *mon_client = nullptr; - snapid_t last_snap = 0; - snapid_t last_created, last_destroyed; - snapid_t snaprealm_v2_since; - map snaps; - map > need_to_purge; - - map pending_update; - map > pending_destroy; // (removed_snap, seq) - set pending_noop; +public: + SnapServer(MDSRank *m, MonClient *monc) + : MDSTableServer(m, TABLE_SNAP), mon_client(monc) {} + SnapServer() : MDSTableServer(NULL, TABLE_SNAP) {} + + void handle_remove_snaps(const cref_t &m); - version_t last_checked_osdmap; + void reset_state() override; - bool root_scrubbed = false; // all snaprealms under root are converted? - bool mdsdir_scrubbed = false; // all snaprealms under ~mds0 are converted? + bool upgrade_format() { + // upgraded from old filesystem + ceph_assert(is_active()); + ceph_assert(last_snap > 0); + bool upgraded = false; + if (get_version() == 0) { + // version 0 confuses snapclient code + reset(); + upgraded = true; + } + if (snaprealm_v2_since == CEPH_NOSNAP) { + // new snapshots will have new format snaprealms + snaprealm_v2_since = last_snap + 1; + upgraded = true; + } + return upgraded; + } + + void check_osd_map(bool force); + + void mark_base_recursively_scrubbed(inodeno_t ino) { + if (ino == MDS_INO_ROOT) + root_scrubbed = true; + else if (ino == MDS_INO_MDSDIR(rank)) + mdsdir_scrubbed = true; + else + ceph_abort(); + } + bool can_allow_multimds_snaps() const { + return (root_scrubbed && mdsdir_scrubbed) || + snaps.empty() || snaps.begin()->first >= snaprealm_v2_since; + } + + void encode(bufferlist& bl) const { + encode_server_state(bl); + } + void decode(bufferlist::const_iterator& bl) { + decode_server_state(bl); + } + + void dump(Formatter *f) const; + static void generate_test_instances(std::list& ls); + + bool force_update(snapid_t last, snapid_t v2_since, + map& _snaps); +protected: void encode_server_state(bufferlist& bl) const override { ENCODE_START(5, 3, bl); encode(last_snap, bl); @@ -93,61 +132,21 @@ protected: bool _notify_prep(version_t tid) override; void handle_query(const cref_t &m) override; -public: - void handle_remove_snaps(const cref_t &m); - -public: - SnapServer(MDSRank *m, MonClient *monc) - : MDSTableServer(m, TABLE_SNAP), mon_client(monc), last_checked_osdmap(0) {} - SnapServer() : MDSTableServer(NULL, TABLE_SNAP), last_checked_osdmap(0) {} - - void reset_state() override; - - bool upgrade_format() { - // upgraded from old filesystem - ceph_assert(is_active()); - ceph_assert(last_snap > 0); - bool upgraded = false; - if (get_version() == 0) { - // version 0 confuses snapclient code - reset(); - upgraded = true; - } - if (snaprealm_v2_since == CEPH_NOSNAP) { - // new snapshots will have new format snaprealms - snaprealm_v2_since = last_snap + 1; - upgraded = true; - } - return upgraded; - } - - void check_osd_map(bool force); - - void mark_base_recursively_scrubbed(inodeno_t ino) { - if (ino == MDS_INO_ROOT) - root_scrubbed = true; - else if (ino == MDS_INO_MDSDIR(rank)) - mdsdir_scrubbed = true; - else - ceph_abort(); - } - bool can_allow_multimds_snaps() const { - return (root_scrubbed && mdsdir_scrubbed) || - snaps.empty() || snaps.begin()->first >= snaprealm_v2_since; - } + MonClient *mon_client = nullptr; + snapid_t last_snap = 0; + snapid_t last_created, last_destroyed; + snapid_t snaprealm_v2_since; + map snaps; + map > need_to_purge; - void encode(bufferlist& bl) const { - encode_server_state(bl); - } - void decode(bufferlist::const_iterator& bl) { - decode_server_state(bl); - } + map pending_update; + map > pending_destroy; // (removed_snap, seq) + set pending_noop; - void dump(Formatter *f) const; - static void generate_test_instances(std::list& ls); + version_t last_checked_osdmap = 0; - bool force_update(snapid_t last, snapid_t v2_since, - map& _snaps); + bool root_scrubbed = false; // all snaprealms under root are converted? + bool mdsdir_scrubbed = false; // all snaprealms under ~mds0 are converted? }; WRITE_CLASS_ENCODER(SnapServer)