OPTION(mds_dump_cache_after_rejoin, 0, OPT_BOOL, false),
OPTION(mds_hack_log_expire_for_better_stats, 0, OPT_BOOL, false),
OPTION(mds_verify_scatter, 0, OPT_BOOL, false),
+ OPTION(mds_debug_scatterstat, 0, OPT_BOOL, false),
OPTION(mds_kill_mdstable_at, 0, OPT_INT, 0),
OPTION(mds_kill_export_at, 0, OPT_INT, 0),
OPTION(mds_kill_import_at, 0, OPT_INT, 0),
// set these to non-zero to specify kill points
bool mds_verify_scatter;
+ bool mds_debug_scatterstat;
int mds_kill_mdstable_at;
int mds_kill_export_at;
int mds_kill_import_at;
out << " " << dir.fnode.fragstat;
if (!(dir.fnode.fragstat == dir.fnode.accounted_fragstat))
out << "/" << dir.fnode.accounted_fragstat;
- if (false && dir.is_projected()) {
+ if (g_conf.mds_debug_scatterstat && dir.is_projected()) {
fnode_t *pf = dir.get_projected_fnode();
out << "->" << pf->fragstat;
if (!(pf->fragstat == pf->accounted_fragstat))
out << " " << dir.fnode.rstat;
if (!(dir.fnode.rstat == dir.fnode.accounted_rstat))
out << "/" << dir.fnode.accounted_rstat;
- if (false && dir.is_projected()) {
+ if (g_conf.mds_debug_scatterstat && dir.is_projected()) {
fnode_t *pf = dir.get_projected_fnode();
out << "->" << pf->rstat;
if (!(pf->rstat == pf->accounted_rstat))
if (in.inode.is_dir()) {
out << " " << in.inode.dirstat;
- //if (in.inode.dirstat.version > 10000) out << " BADDIRSTAT";
+ if (g_conf.mds_debug_scatterstat && in.is_projected()) {
+ inode_t *pi = in.get_projected_inode();
+ out << "->" << pi->dirstat;
+ }
} else {
out << " s=" << in.inode.size;
if (in.inode.nlink != 1)
out << " " << in.inode.rstat;
if (!(in.inode.rstat == in.inode.accounted_rstat))
out << "/" << in.inode.accounted_rstat;
+ if (g_conf.mds_debug_scatterstat && in.is_projected()) {
+ inode_t *pi = in.get_projected_inode();
+ out << "->" << pi->rstat;
+ if (!(pi->rstat == pi->accounted_rstat))
+ out << "/" << pi->accounted_rstat;
+ }
if (!in.client_need_snapflush.empty())
out << " need_snapflush=" << in.client_need_snapflush;
debug mds = 20
debug auth = 20
debug monc = 20
+ mds debug scatterstat = true
+ mds verify scatter = true
mds log max segments = 2'
fi