summaryrefslogtreecommitdiffstats
path: root/src/mds/DamageTable.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/mds/DamageTable.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/mds/DamageTable.h b/src/mds/DamageTable.h
index a1b96fe2218..a8182491a9f 100644
--- a/src/mds/DamageTable.h
+++ b/src/mds/DamageTable.h
@@ -30,7 +30,8 @@ typedef enum
{
DAMAGE_ENTRY_DIRFRAG,
DAMAGE_ENTRY_DENTRY,
- DAMAGE_ENTRY_BACKTRACE
+ DAMAGE_ENTRY_BACKTRACE,
+ DAMAGE_ENTRY_UNINLINE_FILE
} damage_entry_type_t;
@@ -162,6 +163,16 @@ class DamageTable
void remove_backtrace_damage_entry(inodeno_t ino);
+ /**
+ * Indicate that there was some error when attempting to unline data of
+ * the file.
+ *
+ * @return true if fatal
+ */
+ bool notify_uninline_failed(
+ inodeno_t ino, mds_rank_t rank, int32_t failure_errno,
+ std::string_view scrub_tag, std::string_view path);
+
bool is_dentry_damaged(
const CDir *dir_frag,
std::string_view dname,
@@ -194,6 +205,9 @@ class DamageTable
// (i.e. have probably/possibly missing backtraces)
std::map<inodeno_t, DamageEntryRef> remotes;
+ // Map of all inodes for which Data Uninlining failed
+ std::map<inodeno_t, DamageEntryRef> uninline_failures;
+
// All damage, by ID. This is a secondary index
// to the dirfrag, dentry, remote maps. It exists
// to enable external tools to unambiguously operate