namespace {
enum osd_pool_get_choices {
SIZE, MIN_SIZE, CRASH_REPLAY_INTERVAL,
- PG_NUM, PGP_NUM, CRUSH_RULESET, HIT_SET_TYPE,
+ PG_NUM, PGP_NUM, CRUSH_RULESET, HASHPSPOOL,
+ NODELETE, NOPGCHANGE, NOSIZECHANGE,
+ WRITE_FADVISE_DONTNEED, HIT_SET_TYPE,
HIT_SET_PERIOD, HIT_SET_COUNT, HIT_SET_FPP, USE_GMT_HITSET,
AUID, TARGET_MAX_OBJECTS, TARGET_MAX_BYTES,
CACHE_TARGET_DIRTY_RATIO, CACHE_TARGET_DIRTY_HIGH_RATIO,
CACHE_TARGET_FULL_RATIO,
CACHE_MIN_FLUSH_AGE, CACHE_MIN_EVICT_AGE,
ERASURE_CODE_PROFILE, MIN_READ_RECENCY_FOR_PROMOTE,
- WRITE_FADVISE_DONTNEED, MIN_WRITE_RECENCY_FOR_PROMOTE,
- FAST_READ};
+ MIN_WRITE_RECENCY_FOR_PROMOTE, FAST_READ};
std::set<osd_pool_get_choices>
subtract_second_from_first(const std::set<osd_pool_get_choices>& first,
("min_size", MIN_SIZE)
("crash_replay_interval", CRASH_REPLAY_INTERVAL)
("pg_num", PG_NUM)("pgp_num", PGP_NUM)("crush_ruleset", CRUSH_RULESET)
+ ("hashpspool", HASHPSPOOL)("nodelete", NODELETE)
+ ("nopgchange", NOPGCHANGE)("nosizechange", NOSIZECHANGE)
+ ("write_fadvise_dontneed", WRITE_FADVISE_DONTNEED)
("hit_set_type", HIT_SET_TYPE)("hit_set_period", HIT_SET_PERIOD)
("hit_set_count", HIT_SET_COUNT)("hit_set_fpp", HIT_SET_FPP)
("use_gmt_hitset", USE_GMT_HITSET)
("cache_min_evict_age", CACHE_MIN_EVICT_AGE)
("erasure_code_profile", ERASURE_CODE_PROFILE)
("min_read_recency_for_promote", MIN_READ_RECENCY_FOR_PROMOTE)
- ("write_fadvise_dontneed", WRITE_FADVISE_DONTNEED)
("min_write_recency_for_promote", MIN_WRITE_RECENCY_FOR_PROMOTE)
("fast_read", FAST_READ);
if (f) {
for(choices_set_t::const_iterator it = selected_choices.begin();
it != selected_choices.end(); ++it) {
+ choices_map_t::const_iterator i;
f->open_object_section("pool");
f->dump_string("pool", poolstr);
f->dump_int("pool_id", pool);
case CRUSH_RULESET:
f->dump_int("crush_ruleset", p->get_crush_ruleset());
break;
+ case HASHPSPOOL:
+ case NODELETE:
+ case NOPGCHANGE:
+ case NOSIZECHANGE:
+ case WRITE_FADVISE_DONTNEED:
+ for (i = ALL_CHOICES.begin(); i != ALL_CHOICES.end(); ++i) {
+ if (i->second == *it)
+ break;
+ }
+ assert(i != ALL_CHOICES.end());
+ f->dump_string(i->first.c_str(),
+ p->has_flag(pg_pool_t::get_flag_by_name(i->first)) ?
+ "true" : "false");
+ break;
case HIT_SET_PERIOD:
f->dump_int("hit_set_period", p->hit_set_period);
break;
f->dump_int("min_read_recency_for_promote",
p->min_read_recency_for_promote);
break;
- case WRITE_FADVISE_DONTNEED:
- f->dump_string("write_fadvise_dontneed",
- p->has_flag(pg_pool_t::FLAG_WRITE_FADVISE_DONTNEED) ?
- "true" : "false");
- break;
case MIN_WRITE_RECENCY_FOR_PROMOTE:
f->dump_int("min_write_recency_for_promote",
p->min_write_recency_for_promote);
} else /* !f */ {
for(choices_set_t::const_iterator it = selected_choices.begin();
it != selected_choices.end(); ++it) {
+ choices_map_t::const_iterator i;
switch(*it) {
case PG_NUM:
ss << "pg_num: " << p->get_pg_num() << "\n";
ss << "min_read_recency_for_promote: " <<
p->min_read_recency_for_promote << "\n";
break;
+ case HASHPSPOOL:
+ case NODELETE:
+ case NOPGCHANGE:
+ case NOSIZECHANGE:
case WRITE_FADVISE_DONTNEED:
- ss << "write_fadvise_dontneed: " <<
- (p->has_flag(pg_pool_t::FLAG_WRITE_FADVISE_DONTNEED) ?
+ for (i = ALL_CHOICES.begin(); i != ALL_CHOICES.end(); ++i) {
+ if (i->second == *it)
+ break;
+ }
+ assert(i != ALL_CHOICES.end());
+ ss << i->first << ": " <<
+ (p->has_flag(pg_pool_t::get_flag_by_name(i->first)) ?
"true" : "false") << "\n";
break;
case MIN_WRITE_RECENCY_FOR_PROMOTE: