From acd265c39f253f364c3ca037b95b9477de641eeb Mon Sep 17 00:00:00 2001 From: Varsha Rao Date: Thu, 26 Dec 2019 22:53:54 +0530 Subject: [PATCH] mds: Reorganize structure members in snap header Fixes: https://tracker.ceph.com/issues/43425 Signed-off-by: Varsha Rao --- src/mds/snap.h | 65 +++++++++++++++++++++----------------------------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/src/mds/snap.h b/src/mds/snap.h index 9ccdf71fe24..9ebadb1255b 100644 --- a/src/mds/snap.h +++ b/src/mds/snap.h @@ -20,23 +20,25 @@ #include "mdstypes.h" #include "common/snap_types.h" +#include "Capability.h" + /* * generic snap descriptor. */ struct SnapInfo { - snapid_t snapid; - inodeno_t ino; - utime_t stamp; - string name; - - mutable string long_name; ///< cached _$ino_$name - void encode(bufferlist &bl) const; void decode(bufferlist::const_iterator &bl); void dump(Formatter *f) const; static void generate_test_instances(std::list& ls); std::string_view get_long_name() const; + + snapid_t snapid; + inodeno_t ino; + utime_t stamp; + string name; + + mutable string long_name; ///< cached _$ino_$name }; WRITE_CLASS_ENCODER(SnapInfo) @@ -48,63 +50,50 @@ inline bool operator==(const SnapInfo &l, const SnapInfo &r) ostream& operator<<(ostream& out, const SnapInfo &sn); - /* * SnapRealm - a subtree that shares the same set of snapshots. */ struct SnapRealm; -class CInode; -class MDCache; - - - -#include "Capability.h" struct snaplink_t { - inodeno_t ino; - snapid_t first; - void encode(bufferlist &bl) const; void decode(bufferlist::const_iterator &bl); void dump(Formatter *f) const; static void generate_test_instances(std::list& ls); + + inodeno_t ino; + snapid_t first; }; WRITE_CLASS_ENCODER(snaplink_t) ostream& operator<<(ostream& out, const snaplink_t &l); - // carry data about a specific version of a SnapRealm struct sr_t { - snapid_t seq; // basically, a version/seq # for changes to _this_ realm. - snapid_t created; // when this realm was created. - snapid_t last_created; // last snap created in _this_ realm. - snapid_t last_destroyed; // seq for last removal - snapid_t current_parent_since; - map snaps; - map past_parents; // key is "last" (or NOSNAP) - set past_parent_snaps; - - __u32 flags; - enum { - PARENT_GLOBAL = 1 << 0, - }; - void mark_parent_global() { flags |= PARENT_GLOBAL; } void clear_parent_global() { flags &= ~PARENT_GLOBAL; } bool is_parent_global() const { return flags & PARENT_GLOBAL; } - sr_t() - : seq(0), created(0), - last_created(0), last_destroyed(0), - current_parent_since(1), flags(0) - {} - void encode(bufferlist &bl) const; void decode(bufferlist::const_iterator &bl); void dump(Formatter *f) const; static void generate_test_instances(std::list& ls); + + snapid_t seq = 0; // basically, a version/seq # for changes to _this_ realm. + snapid_t created = 0; // when this realm was created. + snapid_t last_created = 0; // last snap created in _this_ realm. + snapid_t last_destroyed = 0; // seq for last removal + snapid_t current_parent_since = 1; + map snaps; + map past_parents; // key is "last" (or NOSNAP) + set past_parent_snaps; + + __u32 flags = 0; + enum { + PARENT_GLOBAL = 1 << 0, + }; }; WRITE_CLASS_ENCODER(sr_t) +class MDCache; #endif