diff options
-rw-r--r-- | src/osd/osd_types.cc | 6 | ||||
-rw-r--r-- | src/osd/osd_types.h | 20 |
2 files changed, 21 insertions, 5 deletions
diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 1fecece9290..4ccad5eebb9 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -2968,10 +2968,8 @@ ostream& operator<<(ostream& out, const object_info_t& oi) out << " wrlock_by=" << oi.wrlock_by; else out << " " << oi.snaps; - if (oi.is_lost()) - out << " LOST"; - if (oi.is_whiteout()) - out << " WHITEOUT"; + if (oi.flags) + out << " " << oi.get_flag_string(); out << ")"; return out; } diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 8e5b7319bd6..72ee32c4cc5 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -2103,14 +2103,32 @@ struct object_info_t { // ... FLAG_USES_TMAP = 1<<8, } flag_t; + flag_t flags; + static string get_flag_string(flag_t flags) { + string s; + if (flags & FLAG_LOST) + s += "|lost"; + if (flags & FLAG_WHITEOUT) + s += "|whiteout"; + if (flags & FLAG_DIRTY) + s += "|dirty"; + if (flags & FLAG_USES_TMAP) + s += "|uses_tmap"; + if (s.length()) + return s.substr(1); + return s; + } + string get_flag_string() const { + return get_flag_string(flags); + } + osd_reqid_t wrlock_by; // [head] vector<snapid_t> snaps; // [clone] uint64_t truncate_seq, truncate_size; - map<pair<uint64_t, entity_name_t>, watch_info_t> watchers; void copy_user_bits(const object_info_t& other); |