From: Colin Patrick McCabe Date: Tue, 7 Jun 2011 17:38:54 +0000 (-0700) Subject: g_conf: change to pointer X-Git-Tag: v0.30~113 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=83e49cd83353031ed36207f410471f139e76c892;p=ceph.git g_conf: change to pointer Signed-off-by: Colin McCabe --- diff --git a/src/auth/AuthSupported.cc b/src/auth/AuthSupported.cc index 9252b5e5aa9b5..0a43a4a2ce8a4 100644 --- a/src/auth/AuthSupported.cc +++ b/src/auth/AuthSupported.cc @@ -25,7 +25,7 @@ static map auth_supported; static void _init_supported(void) { - string str = g_conf.auth_supported; + string str = g_conf->auth_supported; list sup_list; get_str_list(str, sup_list); for (list::iterator iter = sup_list.begin(); iter != sup_list.end(); ++iter) { diff --git a/src/auth/KeyRing.h b/src/auth/KeyRing.h index a3e26e2b6c1d2..b02a9c664d591 100644 --- a/src/auth/KeyRing.h +++ b/src/auth/KeyRing.h @@ -54,7 +54,7 @@ public: return true; } void get_master(CryptoKey& dest) const { - get_secret(g_conf.name, dest); + get_secret(g_conf->name, dest); } // modifiers diff --git a/src/auth/cephx/CephxKeyServer.cc b/src/auth/cephx/CephxKeyServer.cc index 49c4fd27a3430..666094d08a018 100644 --- a/src/auth/cephx/CephxKeyServer.cc +++ b/src/auth/cephx/CephxKeyServer.cc @@ -156,7 +156,7 @@ bool KeyServer::_check_rotating_secrets() if (added) { data.rotating_ver++; //data.next_rotating_time = g_clock.now(); - //data.next_rotating_time += MIN(g_conf.auth_mon_ticket_ttl, g_conf.auth_service_ticket_ttl); + //data.next_rotating_time += MIN(g_conf->auth_mon_ticket_ttl, g_conf->auth_service_ticket_ttl); _dump_rotating_secrets(); return true; } @@ -185,7 +185,7 @@ int KeyServer::_rotate_secret(uint32_t service_id) RotatingSecrets& r = data.rotating_secrets[service_id]; int added = 0; utime_t now = g_clock.now(); - double ttl = service_id == CEPH_ENTITY_TYPE_AUTH ? g_conf.auth_mon_ticket_ttl : g_conf.auth_service_ticket_ttl; + double ttl = service_id == CEPH_ENTITY_TYPE_AUTH ? g_conf->auth_mon_ticket_ttl : g_conf->auth_service_ticket_ttl; while (r.need_new_secrets(now)) { ExpiringCryptoKey ek; @@ -380,7 +380,7 @@ int KeyServer::_build_session_auth_info(uint32_t service_id, CephXServiceTicketI { info.service_id = service_id; info.ticket = auth_ticket_info.ticket; - info.ticket.init_timestamps(g_clock.now(), g_conf.auth_service_ticket_ttl); + info.ticket.init_timestamps(g_clock.now(), g_conf->auth_service_ticket_ttl); generate_secret(info.session_key); diff --git a/src/auth/cephx/CephxProtocol.cc b/src/auth/cephx/CephxProtocol.cc index 9b025b0e44472..babd6f52e4629 100644 --- a/src/auth/cephx/CephxProtocol.cc +++ b/src/auth/cephx/CephxProtocol.cc @@ -338,7 +338,7 @@ bool cephx_decode_ticket(KeyStore *keys, uint32_t service_id, CephXTicketBlob& t } if (secret_id == (uint64_t)-1) { - if (!keys->get_secret(g_conf.name, service_secret)) { + if (!keys->get_secret(g_conf->name, service_secret)) { dout(0) << "ceph_decode_ticket could not get general service secret for service_id=" << ceph_entity_type_name(service_id) << " secret_id=" << secret_id << dendl; return false; diff --git a/src/auth/cephx/CephxServiceHandler.cc b/src/auth/cephx/CephxServiceHandler.cc index 3d6a9fdf006b9..0add266432851 100644 --- a/src/auth/cephx/CephxServiceHandler.cc +++ b/src/auth/cephx/CephxServiceHandler.cc @@ -101,11 +101,11 @@ int CephxServiceHandler::handle_request(bufferlist::iterator& indata, bufferlist should_enc_ticket = true; } - info.ticket.init_timestamps(g_clock.now(), g_conf.auth_mon_ticket_ttl); + info.ticket.init_timestamps(g_clock.now(), g_conf->auth_mon_ticket_ttl); info.ticket.name = entity_name; info.ticket.global_id = global_id; info.ticket.auid = eauth.auid; - info.validity += g_conf.auth_mon_ticket_ttl; + info.validity += g_conf->auth_mon_ticket_ttl; if (auid) *auid = eauth.auid; @@ -160,7 +160,7 @@ int CephxServiceHandler::handle_request(bufferlist::iterator& indata, bufferlist ret = r; break; } - info.validity += g_conf.auth_service_ticket_ttl; + info.validity += g_conf->auth_service_ticket_ttl; info_vec.push_back(info); } } diff --git a/src/auth/none/AuthNoneProtocol.h b/src/auth/none/AuthNoneProtocol.h index 92acb9f14c9eb..5209fded13169 100644 --- a/src/auth/none/AuthNoneProtocol.h +++ b/src/auth/none/AuthNoneProtocol.h @@ -22,7 +22,7 @@ struct AuthNoneAuthorizer : public AuthAuthorizer { bool build_authorizer(uint64_t global_id) { __u8 struct_v = 1; ::encode(struct_v, bl); - ::encode(g_conf.name, bl); + ::encode(g_conf->name, bl); ::encode(global_id, bl); return 0; } diff --git a/src/cauthtool.cc b/src/cauthtool.cc index bfa75dcf4557a..bb3dcd5622724 100644 --- a/src/cauthtool.cc +++ b/src/cauthtool.cc @@ -56,7 +56,7 @@ int main(int argc, const char **argv) common_init(args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, CINIT_FLAG_NO_DEFAULT_CONFIG_FILE); common_init_finish(&g_ceph_context); - EntityName ename(g_conf.name); + EntityName ename(g_conf->name); const char *me = argv[0]; diff --git a/src/cconf.cc b/src/cconf.cc index 806ffcce44aff..ccf72c7fc33b1 100644 --- a/src/cconf.cc +++ b/src/cconf.cc @@ -69,7 +69,7 @@ Return code will be 0 on success; error code otherwise.\n\ static int list_sections(const std::string &prefix) { std::vector sections; - int ret = g_conf.get_all_sections(sections); + int ret = g_conf->get_all_sections(sections); if (ret) return 2; for (std::vector::const_iterator p = sections.begin(); @@ -88,9 +88,9 @@ static int lookup(const std::deque §ions, for (deque::const_iterator s = sections.begin(); s != sections.end(); ++s) { my_sections.push_back(*s); } - g_conf.get_my_sections(my_sections); + g_conf->get_my_sections(my_sections); std::string val; - int ret = g_conf.get_val_from_conf_file(my_sections, key.c_str(), val, true); + int ret = g_conf->get_val_from_conf_file(my_sections, key.c_str(), val, true); if (ret == -ENOENT) return 1; else if (ret == 0) { diff --git a/src/cfuse.cc b/src/cfuse.cc index 7fbbf6e8cedf7..d570e6fb7bdc5 100644 --- a/src/cfuse.cc +++ b/src/cfuse.cc @@ -70,7 +70,7 @@ int main(int argc, const char **argv, const char *envp[]) { vec_to_argv(nargs, argc, argv); // FUSE will chdir("/"); be ready. - g_conf.chdir = "/"; + g_conf->chdir = "/"; // check for 32-bit arch if (sizeof(long) == 4) { @@ -100,7 +100,7 @@ int main(int argc, const char **argv, const char *envp[]) { // we need to handle the forking ourselves. int fd[2] = {0, 0}; // parent's, child's pid_t childpid = 0; - if (g_conf.daemonize) { + if (g_conf->daemonize) { int r = socketpair(AF_UNIX, SOCK_STREAM, 0, fd); if (r < 0) { cerr << "cfuse[" << getpid() << "]: unable to create socketpair: " << strerror(errno) << std::endl; @@ -124,7 +124,7 @@ int main(int argc, const char **argv, const char *envp[]) { // start up fuse // use my argc, argv (make sure you pass a mount point!) - int r = client->mount(g_conf.client_mountpoint.c_str()); + int r = client->mount(g_conf->client_mountpoint.c_str()); if (r < 0) { cerr << "cfuse[" << getpid() << "]: ceph mount failed with " << strerror(-r) << std::endl; goto out_shutdown; @@ -144,7 +144,7 @@ int main(int argc, const char **argv, const char *envp[]) { // wait for messenger to finish messenger->wait(); - if (g_conf.daemonize) { + if (g_conf->daemonize) { //cout << "child signalling parent with " << r << std::endl; ::write(fd[1], &r, sizeof(r)); } diff --git a/src/client/Client.cc b/src/client/Client.cc index 1207460e7deff..fa8e8972617f1 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -65,7 +65,7 @@ using namespace std; #undef dout_prefix #define dout_prefix *_dout << "client" << whoami << " " -#define tout if (!g_conf.client_trace.empty()) traceout +#define tout if (!g_conf->client_trace.empty()) traceout // static logger @@ -144,8 +144,8 @@ Client::Client(Messenger *m, MonClient *mc) num_flushing_caps = 0; - lru.lru_set_max(g_conf.client_cache_size); - lru.lru_set_midpoint(g_conf.client_cache_mid); + lru.lru_set_max(g_conf->client_cache_size); + lru.lru_set_midpoint(g_conf->client_cache_mid); // file handles free_fd_set.insert(10, 1<<30); @@ -387,7 +387,7 @@ void Client::update_inode_file_bits(Inode *in, << truncate_size << dendl; in->truncate_size = truncate_size; in->oset.truncate_size = truncate_size; - if (g_conf.client_oc && prior_size > truncate_size) { //do actual in-memory truncation + if (g_conf->client_oc && prior_size > truncate_size) { //do actual in-memory truncation vector ls; filer->file_to_extents(in->ino, &in->layout, truncate_size, prior_size - truncate_size, @@ -849,7 +849,7 @@ int Client::choose_target_mds(MetaRequest *req) goto out; } - if (g_conf.client_use_random_mds) + if (g_conf->client_use_random_mds) goto random_mds; if (req->inode) { @@ -2982,7 +2982,7 @@ int Client::mount(const std::string &mount_root) } client_lock.Unlock(); - int r = monclient->authenticate(g_conf.client_mount_timeout); + int r = monclient->authenticate(g_conf->client_mount_timeout); client_lock.Lock(); if (r < 0) return r; @@ -3018,12 +3018,12 @@ int Client::mount(const std::string &mount_root) _ll_get(root); // trace? - if (!g_conf.client_trace.empty()) { - traceout.open(g_conf.client_trace.c_str()); + if (!g_conf->client_trace.empty()) { + traceout.open(g_conf->client_trace.c_str()); if (traceout.is_open()) { - dout(1) << "opened trace file '" << g_conf.client_trace << "'" << dendl; + dout(1) << "opened trace file '" << g_conf->client_trace << "'" << dendl; } else { - dout(1) << "FAILED to open trace file '" << g_conf.client_trace << "'" << dendl; + dout(1) << "FAILED to open trace file '" << g_conf->client_trace << "'" << dendl; } } @@ -3084,7 +3084,7 @@ void Client::unmount() lru.lru_set_max(0); trim_cache(); - if (g_conf.client_oc) { + if (g_conf->client_oc) { // flush/release all buffered data hash_map::iterator next; for (hash_map::iterator p = inode_map.begin(); @@ -3124,7 +3124,7 @@ void Client::unmount() //} // unsafe writes - if (!g_conf.client_oc) { + if (!g_conf->client_oc) { while (unsafe_sync_write > 0) { dout(0) << unsafe_sync_write << " unsafe_sync_writes, waiting" << dendl; @@ -3133,8 +3133,8 @@ void Client::unmount() } // stop tracing - if (!g_conf.client_trace.empty()) { - dout(1) << "closing trace file '" << g_conf.client_trace << "'" << dendl; + if (!g_conf->client_trace.empty()) { + dout(1) << "closing trace file '" << g_conf->client_trace << "'" << dendl; traceout.close(); } @@ -3180,7 +3180,7 @@ void Client::tick() { dout(21) << "tick" << dendl; tick_event = new C_C_Tick(this); - timer.add_event_after(g_conf.client_tick_interval, tick_event); + timer.add_event_after(g_conf->client_tick_interval, tick_event); utime_t now = g_clock.now(); @@ -3287,7 +3287,7 @@ int Client::_lookup(Inode *dir, const string& dname, Inode **target) goto done; } - if (dname == g_conf.client_snapdir && + if (dname == g_conf->client_snapdir && dir->snapid == CEPH_NOSNAP) { *target = open_snapdir(dir); goto done; @@ -4834,22 +4834,22 @@ int Client::_read_async(Fh *f, uint64_t off, uint64_t len, bufferlist *bl) in->get_cap_ref(CEPH_CAP_FILE_CACHE); dout(10) << "readahead=" << readahead << " nr_consec=" << f->nr_consec_read - << " max_byes=" << g_conf.client_readahead_max_bytes - << " max_periods=" << g_conf.client_readahead_max_periods << dendl; + << " max_byes=" << g_conf->client_readahead_max_bytes + << " max_periods=" << g_conf->client_readahead_max_periods << dendl; // readahead? if (readahead && f->nr_consec_read && - (g_conf.client_readahead_max_bytes || - g_conf.client_readahead_max_periods)) { + (g_conf->client_readahead_max_bytes || + g_conf->client_readahead_max_periods)) { loff_t l = f->consec_read_bytes * 2; - if (g_conf.client_readahead_min) - l = MAX(l, g_conf.client_readahead_min); - if (g_conf.client_readahead_max_bytes) - l = MIN(l, g_conf.client_readahead_max_bytes); + if (g_conf->client_readahead_min) + l = MAX(l, g_conf->client_readahead_min); + if (g_conf->client_readahead_max_bytes) + l = MIN(l, g_conf->client_readahead_max_bytes); loff_t p = in->layout.fl_stripe_count * in->layout.fl_object_size; - if (g_conf.client_readahead_max_periods) - l = MIN(l, g_conf.client_readahead_max_periods * p); + if (g_conf->client_readahead_max_periods) + l = MIN(l, g_conf->client_readahead_max_periods * p); if (l >= 2*p) // align large readahead with period @@ -5059,7 +5059,7 @@ int Client::_write(Fh *f, int64_t offset, uint64_t size, const char *buf) dout(10) << " snaprealm " << *in->snaprealm << dendl; - if (g_conf.client_oc && (got & CEPH_CAP_FILE_BUFFER)) { + if (g_conf->client_oc && (got & CEPH_CAP_FILE_BUFFER)) { // do buffered write if (!in->oset.dirty_tx && in->oset.uncommitted.empty()) get_cap_ref(in, CEPH_CAP_FILE_BUFFER); @@ -5183,7 +5183,7 @@ int Client::_fsync(Fh *f, bool syncdataonly) dout(3) << "_fsync(" << f << ", " << (syncdataonly ? "dataonly)":"data+metadata)") << dendl; - if (g_conf.client_oc) + if (g_conf->client_oc) _flush(in); if (!syncdataonly && (in->dirty_caps & ~CEPH_CAP_ANY_FILE_WR)) { diff --git a/src/client/SyntheticClient.cc b/src/client/SyntheticClient.cc index d321d7cdbc2f0..98e2fc7b47be1 100644 --- a/src/client/SyntheticClient.cc +++ b/src/client/SyntheticClient.cc @@ -2166,7 +2166,7 @@ public: int SyntheticClient::create_objects(int nobj, int osize, int inflight) { // divy up - int numc = g_conf.num_client ? g_conf.num_client : 1; + int numc = g_conf->num_client ? g_conf->num_client : 1; int start, inc, end; @@ -3267,7 +3267,7 @@ void SyntheticClient::import_find(const char *base, const char *find, bool data) if (sp < 0) dirnum++; //dout(0) << "leading dir " << filename << " " << dirnum << dendl; - if (dirnum % g_conf.num_client != client->get_nodeid()) { + if (dirnum % g_conf->num_client != client->get_nodeid()) { dout(20) << "skipping leading dir " << dirnum << " " << filename << dendl; continue; } diff --git a/src/cmds.cc b/src/cmds.cc index 664b2b61a0aa5..0b77d466cb573 100644 --- a/src/cmds.cc +++ b/src/cmds.cc @@ -168,7 +168,7 @@ int main(int argc, const char **argv) } dout(0) << "requesting oneshot_replay for mds" << r << dendl; shadow = MDSMap::STATE_ONESHOT_REPLAY; - g_conf.mds_standby_for_rank = r; + g_conf->mds_standby_for_rank = r; } else if (ceph_argparse_witharg(args, i, &val, "--hot-standby", (char*)NULL)) { int r = parse_rank("hot-standby", val); @@ -178,7 +178,7 @@ int main(int argc, const char **argv) } dout(0) << "requesting standby_replay for mds" << r << dendl; shadow = MDSMap::STATE_STANDBY_REPLAY; - g_conf.mds_standby_for_rank = r; + g_conf->mds_standby_for_rank = r; } else { derr << "Error: can't understand argument: " << *i << "\n" << dendl; @@ -192,14 +192,14 @@ int main(int argc, const char **argv) } // Normal startup - if (g_conf.name.has_default_id()) { + if (g_conf->name.has_default_id()) { derr << "must specify '-i name' with the cmds instance name" << dendl; usage(); } SimpleMessenger *messenger = new SimpleMessenger(); messenger->bind(getpid()); - cout << "starting " << g_conf.name << " at " << messenger->get_ms_addr() + cout << "starting " << g_conf->name << " at " << messenger->get_ms_addr() << std::endl; messenger->register_entity(entity_name_t::MDS(-1)); uint64_t supported = @@ -229,7 +229,7 @@ int main(int argc, const char **argv) messenger->start(); // start mds - MDS *mds = new MDS(g_conf.name.get_id().c_str(), messenger, &mc); + MDS *mds = new MDS(g_conf->name.get_id().c_str(), messenger, &mc); // in case we have to respawn... mds->orig_argc = argc; diff --git a/src/cmon.cc b/src/cmon.cc index 86f7c5532e4ea..0326e6c094fdb 100644 --- a/src/cmon.cc +++ b/src/cmon.cc @@ -75,7 +75,7 @@ int main(int argc, const char **argv) usage(); } - if (g_conf.mon_data.empty()) { + if (g_conf->mon_data.empty()) { cerr << "must specify '--mon-data=foo' data path" << std::endl; usage(); } @@ -83,21 +83,21 @@ int main(int argc, const char **argv) // -- mkfs -- if (mkfs) { common_init_finish(&g_ceph_context); - if (g_conf.monmap.empty() || !osdmapfn) + if (g_conf->monmap.empty() || !osdmapfn) usage(); // make sure it doesn't already exist /* struct stat st; - if (::lstat(g_conf.mon_data.c_str(), &st) == 0) { - cerr << "monfs dir " << g_conf.mon_data << " already exists; remove it first" << std::endl; + if (::lstat(g_conf->mon_data.c_str(), &st) == 0) { + cerr << "monfs dir " << g_conf->mon_data << " already exists; remove it first" << std::endl; usage(); } */ // load monmap bufferlist monmapbl, osdmapbl; - int err = monmapbl.read_file(g_conf.monmap.c_str()); + int err = monmapbl.read_file(g_conf->monmap.c_str()); if (err < 0) exit(1); MonMap monmap; @@ -108,11 +108,11 @@ int main(int argc, const char **argv) exit(1); // go - MonitorStore store(g_conf.mon_data); - Monitor mon(g_conf.name.get_id(), &store, 0, &monmap); + MonitorStore store(g_conf->mon_data); + Monitor mon(g_conf->name.get_id(), &store, 0, &monmap); mon.mkfs(osdmapbl); - cout << argv[0] << ": created monfs at " << g_conf.mon_data - << " for " << g_conf.name << std::endl; + cout << argv[0] << ": created monfs at " << g_conf->mon_data + << " for " << g_conf->name << std::endl; return 0; } @@ -121,11 +121,11 @@ int main(int argc, const char **argv) ceph_mon_feature_incompat); CompatSet ondisk_features; - MonitorStore store(g_conf.mon_data); + MonitorStore store(g_conf->mon_data); err = store.mount(); if (err < 0) { char buf[80]; - cerr << "problem opening monitor store in " << g_conf.mon_data << ": " << strerror_r(-err, buf, sizeof(buf)) << std::endl; + cerr << "problem opening monitor store in " << g_conf->mon_data << ": " << strerror_r(-err, buf, sizeof(buf)) << std::endl; exit(1); } @@ -221,17 +221,17 @@ int main(int argc, const char **argv) assert(v == monmap.get_epoch()); } - if (!monmap.contains(g_conf.name.get_id())) { - cerr << g_conf.name << " does not exist in monmap" << std::endl; + if (!monmap.contains(g_conf->name.get_id())) { + cerr << g_conf->name << " does not exist in monmap" << std::endl; exit(1); } - entity_addr_t ipaddr = monmap.get_addr(g_conf.name.get_id()); + entity_addr_t ipaddr = monmap.get_addr(g_conf->name.get_id()); entity_addr_t conf_addr; std::vector my_sections; - g_conf.get_my_sections(my_sections); + g_conf->get_my_sections(my_sections); std::string mon_addr_str; - if (g_conf.get_val_from_conf_file(my_sections, "mon addr", + if (g_conf->get_val_from_conf_file(my_sections, "mon addr", mon_addr_str, true) == 0) { if (conf_addr.parse(mon_addr_str.c_str()) && (ipaddr != conf_addr)) { @@ -243,21 +243,21 @@ int main(int argc, const char **argv) // bind SimpleMessenger *messenger = new SimpleMessenger(); - int rank = monmap.get_rank(g_conf.name.get_id()); + int rank = monmap.get_rank(g_conf->name.get_id()); - cout << "starting " << g_conf.name << " rank " << rank - << " at " << monmap.get_addr(g_conf.name.get_id()) - << " mon_data " << g_conf.mon_data + cout << "starting " << g_conf->name << " rank " << rank + << " at " << monmap.get_addr(g_conf->name.get_id()) + << " mon_data " << g_conf->mon_data << " fsid " << monmap.get_fsid() << std::endl; - err = messenger->bind(monmap.get_addr(g_conf.name.get_id()), 0); + err = messenger->bind(monmap.get_addr(g_conf->name.get_id()), 0); if (err < 0) return 1; // start monitor messenger->register_entity(entity_name_t::MON(rank)); messenger->set_default_send_priority(CEPH_MSG_PRIO_HIGH); - Monitor *mon = new Monitor(g_conf.name.get_id(), &store, messenger, &monmap); + Monitor *mon = new Monitor(g_conf->name.get_id(), &store, messenger, &monmap); common_init_daemonize(&g_ceph_context, 0); common_init_finish(&g_ceph_context); diff --git a/src/common/Clock.cc b/src/common/Clock.cc index 2446854b9def6..88a44a43dd1da 100644 --- a/src/common/Clock.cc +++ b/src/common/Clock.cc @@ -29,7 +29,7 @@ utime_t Clock::now() { struct timeval tv; gettimeofday(&tv, NULL); utime_t n(&tv); - n += g_conf.clock_offset; + n += g_conf->clock_offset; if (n < last) { //derr << "WARNING: clock jumped backwards from " << last << " to " << n << dendl; n = last; // clock jumped backwards! diff --git a/src/common/DoutStreambuf.cc b/src/common/DoutStreambuf.cc index b5612476bd2d7..5cbe0cb44decc 100644 --- a/src/common/DoutStreambuf.cc +++ b/src/common/DoutStreambuf.cc @@ -298,7 +298,7 @@ handle_conf_change(const md_config_t *conf, const std::set &change if ((changed.count("log_to_syslog") || changed.count("name")) && (g_code_env == CODE_ENVIRONMENT_DAEMON)) { closelog(); - openlog(g_conf.name.to_cstr(), LOG_ODELAY | LOG_PID, LOG_USER); + openlog(g_conf->name.to_cstr(), LOG_ODELAY | LOG_PID, LOG_USER); } flags |= DOUTSB_FLAG_SYSLOG; } diff --git a/src/common/LogClient.cc b/src/common/LogClient.cc index 78b8b47f9ea96..b1683b0f84cf3 100644 --- a/src/common/LogClient.cc +++ b/src/common/LogClient.cc @@ -99,7 +99,7 @@ void LogClient::do_log(clog_type type, const std::string& s) e.msg = s; // log to syslog? - if (g_conf.clog_to_syslog) { + if (g_conf->clog_to_syslog) { ostringstream oss; oss << e; string str(oss.str()); @@ -107,7 +107,7 @@ void LogClient::do_log(clog_type type, const std::string& s) } // log to monitor? - if (g_conf.clog_to_monitors) { + if (g_conf->clog_to_monitors) { log_queue.push_back(e); // if we are a monitor, queue for ourselves, synchronously diff --git a/src/common/Mutex.cc b/src/common/Mutex.cc index 24ddffb1ec701..b7ac971881385 100644 --- a/src/common/Mutex.cc +++ b/src/common/Mutex.cc @@ -14,8 +14,8 @@ #undef dout #undef derr -#define dout(l) if (l<=g_conf.debug_lockdep) *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " lockdep: " -#define derr(l) if (l<=g_conf.debug_lockdep) *_derr << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " lockdep: " +#define dout(l) if (l<=g_conf->debug_lockdep) *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " lockdep: " +#define derr(l) if (l<=g_conf->debug_lockdep) *_derr << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " lockdep: " pthread_mutex_t lockdep_mutex = PTHREAD_MUTEX_INITIALIZER; diff --git a/src/common/ProfLogger.cc b/src/common/ProfLogger.cc index 73df898d2defd..30e8fc71d7983 100644 --- a/src/common/ProfLogger.cc +++ b/src/common/ProfLogger.cc @@ -148,7 +148,7 @@ static void flush_all_loggers() { generic_dout(20) << "flush_all_loggers" << dendl; - if (!g_conf.profiling_logger) + if (!g_conf->profiling_logger) return; utime_t now = g_clock.now(); @@ -163,7 +163,7 @@ static void flush_all_loggers() int now_sec = fromstart.sec(); // do any catching up we need to - bool twice = now_sec - last_flush >= 2 * g_conf.profiling_logger_interval; + bool twice = now_sec - last_flush >= 2 * g_conf->profiling_logger_interval; again: generic_dout(20) << "fromstart " << fromstart << " last_flush " << last_flush << " flushing" << dendl; @@ -181,7 +181,7 @@ static void flush_all_loggers() if (reset && logger_need_reset) logger_need_reset = false; - last_flush = now_sec - (now_sec % g_conf.profiling_logger_interval); + last_flush = now_sec - (now_sec % g_conf->profiling_logger_interval); if (twice) { twice = false; goto again; @@ -189,7 +189,7 @@ static void flush_all_loggers() // schedule next flush event utime_t next; - next.sec_ref() = start.sec() + last_flush + g_conf.profiling_logger_interval; + next.sec_ref() = start.sec() + last_flush + g_conf->profiling_logger_interval; next.nsec_ref() = start.nsec(); generic_dout(20) << "logger now=" << now << " start=" << start @@ -215,8 +215,8 @@ void ProfLogger::_open_log() struct stat st; filename = ""; - if ((!g_conf.chdir.empty()) && - (g_conf.profiling_logger_dir.substr(0,1) != "/")) { + if ((!g_conf->chdir.empty()) && + (g_conf->profiling_logger_dir.substr(0,1) != "/")) { char cwd[PATH_MAX]; char *c = getcwd(cwd, sizeof(cwd)); assert(c); @@ -224,15 +224,15 @@ void ProfLogger::_open_log() filename += "/"; } - filename = g_conf.profiling_logger_dir; + filename = g_conf->profiling_logger_dir; // make (feeble) attempt to create logger_dir if (::stat(filename.c_str(), &st)) ::mkdir(filename.c_str(), 0750); filename += "/"; - if (!g_conf.profiling_logger_subdir.empty()) { - filename += g_conf.profiling_logger_subdir; + if (!g_conf->profiling_logger_subdir.empty()) { + filename += g_conf->profiling_logger_subdir; ::mkdir( filename.c_str(), 0755 ); // make sure dir exists filename += "/"; } @@ -313,7 +313,7 @@ void ProfLogger::_flush() if (vals[i] > 0) { double avg = (fvals[i] / (double)vals[i]); double var = 0.0; - if (g_conf.profiling_logger_calc_variance && + if (g_conf->profiling_logger_calc_variance && (unsigned)vals[i] == vals_to_avg[i].size()) { for (vector::iterator p = vals_to_avg[i].begin(); p != vals_to_avg[i].end(); ++p) var += (avg - *p) * (avg - *p); @@ -348,7 +348,7 @@ void ProfLogger::_flush() int64_t ProfLogger::inc(int key, int64_t v) { - if (!g_conf.profiling_logger) + if (!g_conf->profiling_logger) return 0; prof_logger_lock.Lock(); int i = type->lookup_key(key); @@ -360,7 +360,7 @@ int64_t ProfLogger::inc(int key, int64_t v) double ProfLogger::finc(int key, double v) { - if (!g_conf.profiling_logger) + if (!g_conf->profiling_logger) return 0; prof_logger_lock.Lock(); int i = type->lookup_key(key); @@ -372,7 +372,7 @@ double ProfLogger::finc(int key, double v) int64_t ProfLogger::set(int key, int64_t v) { - if (!g_conf.profiling_logger) + if (!g_conf->profiling_logger) return 0; prof_logger_lock.Lock(); int i = type->lookup_key(key); @@ -385,7 +385,7 @@ int64_t ProfLogger::set(int key, int64_t v) double ProfLogger::fset(int key, double v) { - if (!g_conf.profiling_logger) + if (!g_conf->profiling_logger) return 0; prof_logger_lock.Lock(); int i = type->lookup_key(key); @@ -397,13 +397,13 @@ double ProfLogger::fset(int key, double v) double ProfLogger::favg(int key, double v) { - if (!g_conf.profiling_logger) + if (!g_conf->profiling_logger) return 0; prof_logger_lock.Lock(); int i = type->lookup_key(key); vals[i]++; double r = fvals[i] += v; - if (g_conf.profiling_logger_calc_variance) + if (g_conf->profiling_logger_calc_variance) vals_to_avg[i].push_back(v); prof_logger_lock.Unlock(); return r; @@ -411,7 +411,7 @@ double ProfLogger::favg(int key, double v) int64_t ProfLogger::get(int key) { - if (!g_conf.profiling_logger) + if (!g_conf->profiling_logger) return 0; prof_logger_lock.Lock(); int i = type->lookup_key(key); diff --git a/src/common/ceph_context.cc b/src/common/ceph_context.cc index fd104ffb33153..31a9987be27a6 100644 --- a/src/common/ceph_context.cc +++ b/src/common/ceph_context.cc @@ -26,7 +26,7 @@ // FIXME // These variables are here temporarily to make the transition easier. CephContext g_ceph_context __attribute__((init_priority(103))); -md_config_t &g_conf(*g_ceph_context._conf); +md_config_t *g_conf(g_ceph_context._conf); std::ostream *_dout(&g_ceph_context._dout); DoutStreambuf ::traits_type> *_doss(g_ceph_context._doss); diff --git a/src/common/ceph_context.h b/src/common/ceph_context.h index 42048528aee82..40d2daec8d994 100644 --- a/src/common/ceph_context.h +++ b/src/common/ceph_context.h @@ -74,7 +74,7 @@ private: /* Globals (FIXME: remove) */ extern CephContext g_ceph_context; -extern md_config_t &g_conf; +extern md_config_t *g_conf; extern std::ostream *_dout; extern DoutStreambuf ::traits_type> *_doss; diff --git a/src/common/common_init.cc b/src/common/common_init.cc index f0ade99f97173..7e3f2e7524804 100644 --- a/src/common/common_init.cc +++ b/src/common/common_init.cc @@ -226,8 +226,8 @@ void common_init_daemonize(const CephContext *cct, int flags) exit(1); } } - pidfile_write(&g_conf); - ret = g_ceph_context._doss->handle_pid_change(&g_conf); + pidfile_write(g_conf); + ret = g_ceph_context._doss->handle_pid_change(g_conf); if (ret) { derr << "common_init_daemonize: _doss->handle_pid_change failed with " << "error code " << ret << dendl; diff --git a/src/common/config.cc b/src/common/config.cc index ca359a319f6fc..2ea00635b420c 100644 --- a/src/common/config.cc +++ b/src/common/config.cc @@ -75,39 +75,39 @@ struct ceph_file_layout g_default_file_layout = { #define TYCHECK(x, ty) STATIC_ASSERT(sizeof(x) == sizeof(ty)) #define OPTION_OPT_STR(name, def_val) \ - { STRINGIFY(name) + TYCHECK(g_conf.name, std::string), \ + { STRINGIFY(name) + TYCHECK(g_conf->name, std::string), \ OPT_STR, offsetof(struct md_config_t, name), def_val, 0, 0 } #define OPTION_OPT_ADDR(name, def_val) \ - { STRINGIFY(name) + TYCHECK(g_conf.name, entity_addr_t), \ + { STRINGIFY(name) + TYCHECK(g_conf->name, entity_addr_t), \ OPT_ADDR, offsetof(struct md_config_t, name), def_val, 0, 0 } #define OPTION_OPT_LONGLONG(name, def_val) \ - { STRINGIFY(name) + TYCHECK(g_conf.name, long long), \ + { STRINGIFY(name) + TYCHECK(g_conf->name, long long), \ OPT_LONGLONG, offsetof(struct md_config_t, name), 0, def_val, 0 } #define OPTION_OPT_INT(name, def_val) \ - { STRINGIFY(name) + TYCHECK(g_conf.name, int), \ + { STRINGIFY(name) + TYCHECK(g_conf->name, int), \ OPT_INT, offsetof(struct md_config_t, name), 0, def_val, 0 } #define OPTION_OPT_BOOL(name, def_val) \ - { STRINGIFY(name) + TYCHECK(g_conf.name, bool), \ + { STRINGIFY(name) + TYCHECK(g_conf->name, bool), \ OPT_BOOL, offsetof(struct md_config_t, name), 0, def_val, 0 } #define OPTION_OPT_U32(name, def_val) \ - { STRINGIFY(name) + TYCHECK(g_conf.name, uint32_t), \ + { STRINGIFY(name) + TYCHECK(g_conf->name, uint32_t), \ OPT_U32, offsetof(struct md_config_t, name), 0, def_val, 0 } #define OPTION_OPT_U64(name, def_val) \ - { STRINGIFY(name) + TYCHECK(g_conf.name, uint64_t), \ + { STRINGIFY(name) + TYCHECK(g_conf->name, uint64_t), \ OPT_U64, offsetof(struct md_config_t, name), 0, def_val, 0 } #define OPTION_OPT_DOUBLE(name, def_val) \ - { STRINGIFY(name) + TYCHECK(g_conf.name, double), \ + { STRINGIFY(name) + TYCHECK(g_conf->name, double), \ OPT_DOUBLE, offsetof(struct md_config_t, name), 0, 0, def_val } #define OPTION_OPT_FLOAT(name, def_val) \ - { STRINGIFY(name) + TYCHECK(g_conf.name, float), \ + { STRINGIFY(name) + TYCHECK(g_conf->name, float), \ OPT_FLOAT, offsetof(struct md_config_t, name), 0, 0, def_val } #define OPTION(name, type, def_val) OPTION_##type(name, def_val) diff --git a/src/common/debug.h b/src/common/debug.h index 47f2bd56635f1..264a6850fd196 100644 --- a/src/common/debug.h +++ b/src/common/debug.h @@ -68,7 +68,7 @@ inline std::ostream& operator<<(std::ostream& out, _bad_endl_use_dendl_t) { // generic macros #define debug_DOUT_SUBSYS debug #define dout_prefix *_dout -#define DOUT_CONDVAR(x) g_conf.debug_ ## x +#define DOUT_CONDVAR(x) g_conf->debug_ ## x #define XDOUT_CONDVAR(x) DOUT_CONDVAR(x) #define DOUT_COND(l) l <= XDOUT_CONDVAR(DOUT_SUBSYS) @@ -98,7 +98,7 @@ inline std::ostream& operator<<(std::ostream& out, _bad_endl_use_dendl_t) { *_dout #define generic_dout(v) \ - pdout(v, g_conf.debug) + pdout(v, g_conf->debug) #define dendl std::endl; } } while (0) diff --git a/src/cosd.cc b/src/cosd.cc index ab863b8693b6f..bdf042e626764 100644 --- a/src/cosd.cc +++ b/src/cosd.cc @@ -108,14 +108,14 @@ int main(int argc, const char **argv) // whoami char *end; - const char *id = g_conf.name.get_id().c_str(); + const char *id = g_conf->name.get_id().c_str(); int whoami = strtol(id, &end, 10); if (*end || end == id || whoami < 0) { derr << "must specify '-i #' where # is the osd number" << dendl; usage(); } - if (g_conf.osd_data.empty()) { + if (g_conf->osd_data.empty()) { derr << "must specify '--osd-data=foo' data path" << dendl; usage(); } @@ -128,15 +128,15 @@ int main(int argc, const char **argv) if (mc.get_monmap_privately() < 0) return -1; - int err = OSD::mkfs(g_conf.osd_data, g_conf.osd_journal, mc.monmap.fsid, whoami); + int err = OSD::mkfs(g_conf->osd_data, g_conf->osd_journal, mc.monmap.fsid, whoami); if (err < 0) { derr << TEXT_RED << " ** ERROR: error creating empty object store in " - << g_conf.osd_data << ": " << cpp_strerror(-err) << TEXT_NORMAL << dendl; + << g_conf->osd_data << ": " << cpp_strerror(-err) << TEXT_NORMAL << dendl; exit(1); } - derr << "created object store " << g_conf.osd_data; - if (!g_conf.osd_journal.empty()) - *_dout << " journal " << g_conf.osd_journal; + derr << "created object store " << g_conf->osd_data; + if (!g_conf->osd_journal.empty()) + *_dout << " journal " << g_conf->osd_journal; *_dout << " for osd" << whoami << " fsid " << mc.monmap.fsid << dendl; } if (mkkey) { @@ -146,45 +146,45 @@ int main(int argc, const char **argv) derr << "Unable to get a Ceph keyring." << dendl; return 1; } - EntityName ename(g_conf.name); + EntityName ename(g_conf->name); EntityAuth eauth; eauth.key.create(CEPH_CRYPTO_AES); keyring->add(ename, eauth); bufferlist bl; keyring->encode_plaintext(bl); - int r = bl.write_file(g_conf.keyring.c_str(), 0600); + int r = bl.write_file(g_conf->keyring.c_str(), 0600); if (r) - derr << TEXT_RED << " ** ERROR: writing new keyring to " << g_conf.keyring + derr << TEXT_RED << " ** ERROR: writing new keyring to " << g_conf->keyring << ": " << cpp_strerror(r) << TEXT_NORMAL << dendl; else - derr << "created new key in keyring " << g_conf.keyring << dendl; + derr << "created new key in keyring " << g_conf->keyring << dendl; } if (mkfs || mkkey) exit(0); if (mkjournal) { common_init_finish(&g_ceph_context); - int err = OSD::mkjournal(g_conf.osd_data, g_conf.osd_journal); + int err = OSD::mkjournal(g_conf->osd_data, g_conf->osd_journal); if (err < 0) { - derr << TEXT_RED << " ** ERROR: error creating fresh journal " << g_conf.osd_journal - << " for object store " << g_conf.osd_data + derr << TEXT_RED << " ** ERROR: error creating fresh journal " << g_conf->osd_journal + << " for object store " << g_conf->osd_data << ": " << cpp_strerror(-err) << TEXT_NORMAL << dendl; exit(1); } - derr << "created new journal " << g_conf.osd_journal - << " for object store " << g_conf.osd_data << dendl; + derr << "created new journal " << g_conf->osd_journal + << " for object store " << g_conf->osd_data << dendl; exit(0); } if (flushjournal) { common_init_finish(&g_ceph_context); - int err = OSD::flushjournal(g_conf.osd_data, g_conf.osd_journal); + int err = OSD::flushjournal(g_conf->osd_data, g_conf->osd_journal); if (err < 0) { - derr << TEXT_RED << " ** ERROR: error flushing journal " << g_conf.osd_journal - << " for object store " << g_conf.osd_data + derr << TEXT_RED << " ** ERROR: error flushing journal " << g_conf->osd_journal + << " for object store " << g_conf->osd_data << ": " << cpp_strerror(-err) << TEXT_NORMAL << dendl; exit(1); } - derr << "flushed journal " << g_conf.osd_journal - << " for object store " << g_conf.osd_data + derr << "flushed journal " << g_conf->osd_journal + << " for object store " << g_conf->osd_data << dendl; exit(0); } @@ -192,10 +192,10 @@ int main(int argc, const char **argv) string magic; ceph_fsid_t fsid; int w; - int r = OSD::peek_meta(g_conf.osd_data, magic, fsid, w); + int r = OSD::peek_meta(g_conf->osd_data, magic, fsid, w); if (r < 0) { derr << TEXT_RED << " ** ERROR: unable to open OSD superblock on " - << g_conf.osd_data << ": " << cpp_strerror(-r) + << g_conf->osd_data << ": " << cpp_strerror(-r) << TEXT_NORMAL << dendl; if (r == -ENOTSUP) { derr << TEXT_RED << " ** please verify that underlying storage " @@ -213,14 +213,14 @@ int main(int argc, const char **argv) exit(1); } - bool client_addr_set = !g_conf.public_addr.is_blank_addr(); - bool cluster_addr_set = !g_conf.cluster_addr.is_blank_addr(); + bool client_addr_set = !g_conf->public_addr.is_blank_addr(); + bool cluster_addr_set = !g_conf->cluster_addr.is_blank_addr(); if (cluster_addr_set && !client_addr_set) { derr << TEXT_RED << " ** " << "WARNING: set cluster address but not client address!" << " **\n" << "using cluster address for clients" << TEXT_NORMAL << dendl; - g_conf.public_addr = g_conf.cluster_addr; + g_conf->public_addr = g_conf->cluster_addr; client_addr_set = true; cluster_addr_set = false; } @@ -229,27 +229,27 @@ int main(int argc, const char **argv) SimpleMessenger *cluster_messenger = new SimpleMessenger(); SimpleMessenger *messenger_hb = new SimpleMessenger(); - client_messenger->bind(g_conf.public_addr, getpid()); - cluster_messenger->bind(g_conf.cluster_addr, getpid()); + client_messenger->bind(g_conf->public_addr, getpid()); + cluster_messenger->bind(g_conf->cluster_addr, getpid()); // hb should bind to same ip as cluster_addr (if specified) - entity_addr_t hb_addr = g_conf.cluster_addr; + entity_addr_t hb_addr = g_conf->cluster_addr; if (!hb_addr.is_blank_addr()) hb_addr.set_port(0); messenger_hb->bind(hb_addr, getpid()); cout << "starting osd" << whoami << " at " << client_messenger->get_ms_addr() - << " osd_data " << g_conf.osd_data - << " " << ((g_conf.osd_journal.empty()) ? - "(no journal)" : g_conf.osd_journal) + << " osd_data " << g_conf->osd_data + << " " << ((g_conf->osd_journal.empty()) ? + "(no journal)" : g_conf->osd_journal) << std::endl; client_messenger->register_entity(entity_name_t::OSD(whoami)); cluster_messenger->register_entity(entity_name_t::OSD(whoami)); messenger_hb->register_entity(entity_name_t::OSD(whoami)); - Throttle client_throttler(g_conf.osd_client_message_size_cap); + Throttle client_throttler(g_conf->osd_client_message_size_cap); uint64_t supported = CEPH_FEATURE_UID | @@ -283,7 +283,7 @@ int main(int argc, const char **argv) common_init_chdir(&g_ceph_context); OSD *osd = new OSD(whoami, cluster_messenger, client_messenger, messenger_hb, &mc, - g_conf.osd_data, g_conf.osd_journal); + g_conf->osd_data, g_conf->osd_journal); int err = osd->pre_init(); if (err < 0) { derr << TEXT_RED << " ** ERROR: initializing osd failed: " << cpp_strerror(-err) diff --git a/src/csyn.cc b/src/csyn.cc index c654cc3a962c9..da045ee6f120f 100644 --- a/src/csyn.cc +++ b/src/csyn.cc @@ -60,11 +60,11 @@ int main(int argc, const char **argv, char *envp[]) list clients; list synclients; - SimpleMessenger* messengers[g_conf.num_client]; - MonClient* mclients[g_conf.num_client]; + SimpleMessenger* messengers[g_conf->num_client]; + MonClient* mclients[g_conf->num_client]; - cout << "csyn: starting " << g_conf.num_client << " syn client(s)" << std::endl; - for (int i=0; inum_client << " syn client(s)" << std::endl; + for (int i=0; inum_client; i++) { messengers[i] = new SimpleMessenger(); messengers[i]->register_entity(entity_name_t(entity_name_t::TYPE_CLIENT,-1)); messengers[i]->bind(i * 1000000 + getpid()); @@ -94,7 +94,7 @@ int main(int argc, const char **argv, char *envp[]) delete client; } - for (int i = 0; i < g_conf.num_client; ++i) { + for (int i = 0; i < g_conf->num_client; ++i) { // wait for messenger to finish delete mclients[i]; messengers[i]->wait(); diff --git a/src/librados.cc b/src/librados.cc index ad19aefc00a83..62371cd4208b5 100644 --- a/src/librados.cc +++ b/src/librados.cc @@ -98,7 +98,7 @@ struct librados::IoCtxImpl { IoCtxImpl(RadosClient *c, int pid, const char *pool_name_, snapid_t s) : ref_cnt(0), client(c), poolid(pid), pool_name(pool_name_), snap_seq(s), assert_ver(0), - notify_timeout(g_conf.client_notify_timeout), oloc(pid), + notify_timeout(g_conf->client_notify_timeout), oloc(pid), aio_write_list_lock("librados::IoCtxImpl::aio_write_list_lock"), aio_write_seq(0) {} void dup(const IoCtxImpl& rhs) { diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index d7390d8e62bcc..0ddffec86ab9b 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -100,7 +100,7 @@ ostream& operator<<(ostream& out, CDir& dir) out << " " << dir.fnode.fragstat; if (!(dir.fnode.fragstat == dir.fnode.accounted_fragstat)) out << "/" << dir.fnode.accounted_fragstat; - if (g_conf.mds_debug_scatterstat && 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)) @@ -111,7 +111,7 @@ ostream& operator<<(ostream& out, CDir& dir) out << " " << dir.fnode.rstat; if (!(dir.fnode.rstat == dir.fnode.accounted_rstat)) out << "/" << dir.fnode.accounted_rstat; - if (g_conf.mds_debug_scatterstat && 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)) @@ -221,7 +221,7 @@ bool CDir::check_rstats() //if (i->second->get_linkage()->is_primary()) dout(1) << *(i->second) << dendl; } - assert(!g_conf.mds_debug_scatterstat || + assert(!g_conf->mds_debug_scatterstat || (get_num_head_items() == (fnode.fragstat.nfiles + fnode.fragstat.nsubdirs))); } else { @@ -257,9 +257,9 @@ bool CDir::check_rstats() dout(25) << "my rstats: " << fnode.rstat << dendl; } - assert(!g_conf.mds_debug_scatterstat || sub_info.rbytes == fnode.rstat.rbytes); - assert(!g_conf.mds_debug_scatterstat || sub_info.rfiles == fnode.rstat.rfiles); - assert(!g_conf.mds_debug_scatterstat || sub_info.rsubdirs == fnode.rstat.rsubdirs); + assert(!g_conf->mds_debug_scatterstat || sub_info.rbytes == fnode.rstat.rbytes); + assert(!g_conf->mds_debug_scatterstat || sub_info.rfiles == fnode.rstat.rfiles); + assert(!g_conf->mds_debug_scatterstat || sub_info.rsubdirs == fnode.rstat.rsubdirs); dout(10) << "check_rstats complete on " << this << dendl; return true; } @@ -1896,7 +1896,7 @@ void CDir::_commit(version_t want) } // complete first? (only if we're not using TMAPUP osd op) - if (!g_conf.mds_use_tmap && !is_complete()) { + if (!g_conf->mds_use_tmap && !is_complete()) { dout(7) << "commit not complete, fetching first" << dendl; if (cache->mds->logger) cache->mds->logger->inc(l_mds_dir_ffc); fetch(new C_Dir_RetryCommit(this, want)); @@ -1937,7 +1937,7 @@ void CDir::_commit(version_t want) max_write_size -= inode->encode_parent_mutation(m); if (is_complete() && - (num_dirty > (num_head_items*g_conf.mds_dir_commit_ratio))) { + (num_dirty > (num_head_items*g_conf->mds_dir_commit_ratio))) { fnode.snap_purged_thru = realm->get_last_destroyed(); committed_dn = _commit_full(m, snaps, max_write_size); } else { diff --git a/src/mds/CDir.h b/src/mds/CDir.h index 94942dd8109fe..ae048a21acbf1 100644 --- a/src/mds/CDir.h +++ b/src/mds/CDir.h @@ -363,10 +363,10 @@ public: void merge(list& subs, list& waiters, bool replay); bool should_split() { - return (int)get_num_head_items() > g_conf.mds_bal_split_size; + return (int)get_num_head_items() > g_conf->mds_bal_split_size; } bool should_merge() { - return (int)get_num_head_items() < g_conf.mds_bal_merge_size; + return (int)get_num_head_items() < g_conf->mds_bal_merge_size; } private: diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 76b0d964612d4..ca2b52e36caae 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -139,7 +139,7 @@ ostream& operator<<(ostream& out, CInode& in) if (in.inode.is_dir()) { out << " " << in.inode.dirstat; - if (g_conf.mds_debug_scatterstat && in.is_projected()) { + if (g_conf->mds_debug_scatterstat && in.is_projected()) { inode_t *pi = in.get_projected_inode(); out << "->" << pi->dirstat; } @@ -153,7 +153,7 @@ ostream& operator<<(ostream& out, CInode& in) 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()) { + 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)) @@ -1345,7 +1345,7 @@ void CInode::decode_lock_state(int type, bufferlist& bl) dirfragtree.force_to_leaf(p->first); } } - if (g_conf.mds_debug_frag) + if (g_conf->mds_debug_frag) verify_dirfrags(); } break; @@ -1725,7 +1725,7 @@ void CInode::finish_scatter_gather_update(int type) if (pf->fragstat.nsubdirs < 0) pf->fragstat.nsubdirs = 0; - assert(!"bad/negative frag size" == g_conf.mds_verify_scatter); + assert(!"bad/negative frag size" == g_conf->mds_verify_scatter); } if (update) { @@ -1745,7 +1745,7 @@ void CInode::finish_scatter_gather_update(int type) pi->dirstat = pf->fragstat; pi->dirstat.version = v; - assert(!"unmatched fragstat size" == g_conf.mds_verify_scatter); + assert(!"unmatched fragstat size" == g_conf->mds_verify_scatter); } } } @@ -1763,7 +1763,7 @@ void CInode::finish_scatter_gather_update(int type) if (pi->dirstat.nsubdirs < 0) pi->dirstat.nsubdirs = 0; - assert(!"bad/negative dir size" == g_conf.mds_verify_scatter); + assert(!"bad/negative dir size" == g_conf->mds_verify_scatter); } } break; @@ -1828,7 +1828,7 @@ void CInode::finish_scatter_gather_update(int type) pi->rstat = pf->rstat; pi->rstat.version = v; - assert(!"unmatched rstat rbytes" == g_conf.mds_verify_scatter); + assert(!"unmatched rstat rbytes" == g_conf->mds_verify_scatter); } } if (update) @@ -2028,7 +2028,7 @@ void CInode::adjust_nested_auth_pins(int a) << dendl; assert(nested_auth_pins >= 0); - if (g_conf.mds_debug_auth_pins) { + if (g_conf->mds_debug_auth_pins) { // audit int s = 0; for (map::iterator p = dirfrags.begin(); diff --git a/src/mds/CInode.h b/src/mds/CInode.h index b851fc9ad3181..3b4a145e6fff2 100644 --- a/src/mds/CInode.h +++ b/src/mds/CInode.h @@ -373,7 +373,7 @@ public: bool has_dirfrags() { return !dirfrags.empty(); } CDir* get_dirfrag(frag_t fg) { if (dirfrags.count(fg)) { - //assert(g_conf.debug_mds < 2 || dirfragtree.is_leaf(fg)); // performance hack FIXME + //assert(g_conf->debug_mds < 2 || dirfragtree.is_leaf(fg)); // performance hack FIXME return dirfrags[fg]; } else return 0; diff --git a/src/mds/Dumper.cc b/src/mds/Dumper.cc index 6a61ce8aae904..0c7e42bd5f48a 100644 --- a/src/mds/Dumper.cc +++ b/src/mds/Dumper.cc @@ -84,7 +84,7 @@ void Dumper::dump(const char *dump_file) { bool done = false; Cond cond; - int rank = strtol(g_conf.name.get_id().c_str(), 0, 0); + int rank = strtol(g_conf->name.get_id().c_str(), 0, 0); inodeno_t ino = MDS_INO_LOG_OFFSET + rank; lock.Lock(); diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index fcb594c766582..4318ba5cf4be0 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -3515,7 +3515,7 @@ void Locker::scatter_tick() << *lock << " " << *lock->get_parent() << dendl; continue; } - if (now - lock->get_update_stamp() < g_conf.mds_scatter_nudge_interval) + if (now - lock->get_update_stamp() < g_conf->mds_scatter_nudge_interval) break; updated_scatterlocks.pop_front(); scatter_nudge(lock, 0); diff --git a/src/mds/MDBalancer.cc b/src/mds/MDBalancer.cc index bdfdf4144d931..db4a07f19f806 100644 --- a/src/mds/MDBalancer.cc +++ b/src/mds/MDBalancer.cc @@ -37,7 +37,7 @@ using std::vector; #define DOUT_SUBSYS mds #undef DOUT_COND -#define DOUT_COND(l) l<=g_conf.debug_mds || l <= g_conf.debug_mds_balancer +#define DOUT_COND(l) l<=g_conf->debug_mds || l <= g_conf->debug_mds_balancer #undef dout_prefix #define dout_prefix *_dout << "mds" << mds->get_nodeid() << ".bal " @@ -70,14 +70,14 @@ int MDBalancer::proc_message(Message *m) void MDBalancer::tick() { - static int num_bal_times = g_conf.mds_bal_max; + static int num_bal_times = g_conf->mds_bal_max; static utime_t first = g_clock.now(); utime_t now = g_clock.now(); utime_t elapsed = now; elapsed -= first; // sample? - if ((double)now - (double)last_sample > g_conf.mds_bal_sample_interval) { + if ((double)now - (double)last_sample > g_conf->mds_bal_sample_interval) { dout(15) << "tick last_sample now " << now << dendl; last_sample = now; } @@ -86,20 +86,20 @@ void MDBalancer::tick() if (last_heartbeat == utime_t()) last_heartbeat = now; if (mds->get_nodeid() == 0 && - g_conf.mds_bal_interval > 0 && + g_conf->mds_bal_interval > 0 && (num_bal_times || - (g_conf.mds_bal_max_until >= 0 && - elapsed.sec() > g_conf.mds_bal_max_until)) && + (g_conf->mds_bal_max_until >= 0 && + elapsed.sec() > g_conf->mds_bal_max_until)) && mds->is_active() && - now.sec() - last_heartbeat.sec() >= g_conf.mds_bal_interval) { + now.sec() - last_heartbeat.sec() >= g_conf->mds_bal_interval) { last_heartbeat = now; send_heartbeat(); num_bal_times--; } // hash? - if (g_conf.mds_bal_frag && g_conf.mds_bal_fragment_interval > 0 && - now.sec() - last_fragment.sec() > g_conf.mds_bal_fragment_interval) { + if (g_conf->mds_bal_frag && g_conf->mds_bal_fragment_interval > 0 && + now.sec() - last_fragment.sec() > g_conf->mds_bal_fragment_interval) { last_fragment = now; do_fragmenting(); } @@ -122,7 +122,7 @@ public: double mds_load_t::mds_load() { - switch(g_conf.mds_bal_mode) { + switch(g_conf->mds_bal_mode) { case 0: return .8 * auth.meta_load() + @@ -353,7 +353,7 @@ void MDBalancer::do_fragmenting() continue; dout(0) << "do_fragmenting splitting " << *dir << dendl; - mds->mdcache->split_dir(dir, g_conf.mds_bal_split_bits); + mds->mdcache->split_dir(dir, g_conf->mds_bal_split_bits); } } @@ -411,7 +411,7 @@ void MDBalancer::do_fragmenting() void MDBalancer::prep_rebalance(int beat) { - if (g_conf.mds_thrash_exports) { + if (g_conf->mds_thrash_exports) { //we're going to randomly export to all the mds in the cluster my_targets.clear(); set up_mds; @@ -474,7 +474,7 @@ void MDBalancer::prep_rebalance(int beat) << dendl; // under or over? - if (my_load < target_load * (1.0 + g_conf.mds_bal_min_rebalance)) { + if (my_load < target_load * (1.0 + g_conf->mds_bal_min_rebalance)) { dout(5) << " i am underloaded or barely overloaded, doing nothing." << dendl; last_epoch_under = beat_epoch; show_imports(); @@ -587,7 +587,7 @@ void MDBalancer::try_rebalance() if (!check_targets()) return; - if (g_conf.mds_thrash_exports) { + if (g_conf->mds_thrash_exports) { dout(5) << "mds_thrash is on; not performing standard rebalance operation!" << dendl; return; @@ -606,8 +606,8 @@ void MDBalancer::try_rebalance() if (im->get_inode()->is_stray()) continue; double pop = im->pop_auth_subtree.meta_load(rebalance_time, mds->mdcache->decayrate); - if (g_conf.mds_bal_idle_threshold > 0 && - pop < g_conf.mds_bal_idle_threshold && + if (g_conf->mds_bal_idle_threshold > 0 && + pop < g_conf->mds_bal_idle_threshold && im->inode != mds->mdcache->get_root() && im->inode->authority().first != mds->get_nodeid()) { dout(0) << " exporting idle (" << pop << ") import " << *im @@ -641,7 +641,7 @@ void MDBalancer::try_rebalance() dout(0) << " total sent is " << total_sent << " / " << total_goal << " -> fac 1/ " << fac << dendl; if (fac > 1.0) fac = 1.0; } - fac = .9 - .4 * ((float)g_conf.num_mds / 128.0); // hack magic fixme + fac = .9 - .4 * ((float)g_conf->num_mds / 128.0); // hack magic fixme */ int target = (*it).first; @@ -799,9 +799,9 @@ bool MDBalancer::check_targets() continue; } dout(20) << " target mds" << p->first << " has been non-target for " << p->second << dendl; - if (p->second < g_conf.mds_bal_target_removal_min) + if (p->second < g_conf->mds_bal_target_removal_min) want_targets.insert(p->first); - if (p->second >= g_conf.mds_bal_target_removal_max) + if (p->second >= g_conf->mds_bal_target_removal_max) send = true; p++; } @@ -822,12 +822,12 @@ void MDBalancer::find_exports(CDir *dir, set& already_exporting) { double need = amount - have; - if (need < amount * g_conf.mds_bal_min_start) + if (need < amount * g_conf->mds_bal_min_start) return; // good enough! - double needmax = need * g_conf.mds_bal_need_max; - double needmin = need * g_conf.mds_bal_need_min; - double midchunk = need * g_conf.mds_bal_midchunk; - double minchunk = need * g_conf.mds_bal_minchunk; + double needmax = need * g_conf->mds_bal_need_max; + double needmin = need * g_conf->mds_bal_need_min; + double midchunk = need * g_conf->mds_bal_midchunk; + double minchunk = need * g_conf->mds_bal_minchunk; list bigger_rep, bigger_unrep; multimap smaller; @@ -979,7 +979,7 @@ void MDBalancer::hit_dir(utime_t now, CDir *dir, int type, int who, double amoun //dout(0) << "hit_dir " << type << " pop " << v << " in " << *dir << dendl; // split/merge - if (g_conf.mds_bal_frag && g_conf.mds_bal_fragment_interval > 0 && + if (g_conf->mds_bal_frag && g_conf->mds_bal_fragment_interval > 0 && !dir->inode->is_base() && // not root/base (for now at least) dir->is_auth()) { @@ -987,10 +987,10 @@ void MDBalancer::hit_dir(utime_t now, CDir *dir, int type, int who, double amoun << " size " << dir->get_num_head_items() << dendl; // split - if (g_conf.mds_bal_split_size > 0 && - ((dir->get_num_head_items() > (unsigned)g_conf.mds_bal_split_size) || - (v > g_conf.mds_bal_split_rd && type == META_POP_IRD) || - (v > g_conf.mds_bal_split_wr && type == META_POP_IWR)) && + if (g_conf->mds_bal_split_size > 0 && + ((dir->get_num_head_items() > (unsigned)g_conf->mds_bal_split_size) || + (v > g_conf->mds_bal_split_rd && type == META_POP_IRD) || + (v > g_conf->mds_bal_split_wr && type == META_POP_IWR)) && split_queue.count(dir->dirfrag()) == 0) { dout(1) << "hit_dir " << type << " pop is " << v << ", putting in split_queue: " << *dir << dendl; split_queue.insert(dir->dirfrag()); @@ -998,7 +998,7 @@ void MDBalancer::hit_dir(utime_t now, CDir *dir, int type, int who, double amoun // merge? if (dir->get_frag() != frag_t() && - (dir->get_num_head_items() < (unsigned)g_conf.mds_bal_merge_size) && + (dir->get_num_head_items() < (unsigned)g_conf->mds_bal_merge_size) && merge_queue.count(dir->dirfrag()) == 0) { dout(1) << "hit_dir " << type << " pop is " << v << ", putting in merge_queue: " << *dir << dendl; merge_queue.insert(dir->dirfrag()); @@ -1030,7 +1030,7 @@ void MDBalancer::hit_dir(utime_t now, CDir *dir, int type, int who, double amoun if (dir->is_auth() && !dir->is_ambiguous_auth()) { if (!dir->is_rep() && - dir_pop >= g_conf.mds_bal_replicate_threshold) { + dir_pop >= g_conf->mds_bal_replicate_threshold) { // replicate float rdp = dir->pop_me.get(META_POP_IRD).get(now, mds->mdcache->decayrate); rd_adj = rdp / mds->get_mds_map()->get_num_mds() - rdp; @@ -1048,7 +1048,7 @@ void MDBalancer::hit_dir(utime_t now, CDir *dir, int type, int who, double amoun if (dir->ino() != 1 && dir->is_rep() && - dir_pop < g_conf.mds_bal_unreplicate_threshold) { + dir_pop < g_conf->mds_bal_unreplicate_threshold) { // unreplicate dout(0) << "unreplicating dir " << *dir << " pop " << dir_pop << dendl; @@ -1207,7 +1207,7 @@ void MDBalancer::dump_pop_map() if (dir->is_auth()) { if (!dir->is_rep() && - dir_pop >= g_conf.mds_bal_replicate_threshold) { + dir_pop >= g_conf->mds_bal_replicate_threshold) { // replicate dout(5) << "replicating dir " << *in << " pop " << dir_pop << dendl; @@ -1216,7 +1216,7 @@ void MDBalancer::dump_pop_map() } if (dir->is_rep() && - dir_pop < g_conf.mds_bal_unreplicate_threshold) { + dir_pop < g_conf->mds_bal_unreplicate_threshold) { // unreplicate dout(5) << "unreplicating dir " << *in << " pop " << dir_pop << dendl; diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index bea88f197a3b9..f5599b3c1a0ba 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -135,9 +135,9 @@ MDCache::MDCache(MDS *m) num_inodes_with_caps = 0; num_caps = 0; - max_dir_commit_size = g_conf.mds_dir_max_commit_size ? - (g_conf.mds_dir_max_commit_size << 20) : - (0.9 *(g_conf.osd_max_write_size << 20)); + max_dir_commit_size = g_conf->mds_dir_max_commit_size ? + (g_conf->mds_dir_max_commit_size << 20) : + (0.9 *(g_conf->osd_max_write_size << 20)); discover_last_tid = 0; find_ino_peer_last_tid = 0; @@ -149,10 +149,10 @@ MDCache::MDCache(MDS *m) client_lease_durations[2] = 300.0; opening_root = open = false; - lru.lru_set_max(g_conf.mds_cache_size); - lru.lru_set_midpoint(g_conf.mds_cache_mid); + lru.lru_set_max(g_conf->mds_cache_size); + lru.lru_set_midpoint(g_conf->mds_cache_mid); - decayrate.set_halflife(g_conf.mds_decay_halflife); + decayrate.set_halflife(g_conf->mds_decay_halflife); did_shutdown_log_cap = false; } @@ -167,7 +167,7 @@ MDCache::~MDCache() void MDCache::log_stat() { - mds->logger->set(l_mds_imax, g_conf.mds_cache_size); + mds->logger->set(l_mds_imax, g_conf->mds_cache_size); mds->logger->set(l_mds_i, lru.lru_get_size()); mds->logger->set(l_mds_ipin, lru.lru_get_num_pinned()); mds->logger->set(l_mds_itop, lru.lru_get_top()); @@ -285,7 +285,7 @@ CInode *MDCache::create_system_inode(inodeno_t ino, int mode) memset(&in->inode.dir_layout, 0, sizeof(in->inode.dir_layout)); if (in->inode.is_dir()) { memset(&in->inode.layout, 0, sizeof(in->inode.layout)); - in->inode.dir_layout.dl_dir_hash = g_conf.mds_default_dir_hash; + in->inode.dir_layout.dl_dir_hash = g_conf->mds_default_dir_hash; ++in->inode.rstat.rsubdirs; } else { in->inode.layout = default_file_layout; @@ -1759,7 +1759,7 @@ void MDCache::project_rstat_frag_to_inode(nest_info_t& rstat, nest_info_t& accou dout(20) << " result [" << first << "," << last << "] " << pi->rstat << dendl; if (pi->rstat.rbytes < 0) - assert(!"negative rstat rbytes" == g_conf.mds_verify_scatter); + assert(!"negative rstat rbytes" == g_conf->mds_verify_scatter); last = first-1; } @@ -1931,12 +1931,12 @@ void MDCache::predirty_journal_parents(Mutation *mut, EMetaBlob *blob, // delay propagating until later? if (!stop && !first && - g_conf.mds_dirstat_min_interval > 0) { + g_conf->mds_dirstat_min_interval > 0) { if (pin->last_dirstat_prop.sec() > 0) { double since_last_prop = mut->now - pin->last_dirstat_prop; - if (since_last_prop < g_conf.mds_dirstat_min_interval) { + if (since_last_prop < g_conf->mds_dirstat_min_interval) { dout(10) << "predirty_journal_parents last prop " << since_last_prop - << " < " << g_conf.mds_dirstat_min_interval + << " < " << g_conf->mds_dirstat_min_interval << ", stopping" << dendl; stop = true; } else { @@ -1996,7 +1996,7 @@ void MDCache::predirty_journal_parents(Mutation *mut, EMetaBlob *blob, dout(20) << "predirty_journal_parents gives " << pi->dirstat << " on " << *pin << dendl; if (pi->dirstat.size() < 0) - assert(!"negative dirstat size" == g_conf.mds_verify_scatter); + assert(!"negative dirstat size" == g_conf->mds_verify_scatter); if (parent->get_frag() == frag_t()) { // i.e., we are the only frag if (pi->dirstat.size() != pf->fragstat.size()) { mds->clog.error() << "unmatched fragstat size on single dirfrag " @@ -2006,7 +2006,7 @@ void MDCache::predirty_journal_parents(Mutation *mut, EMetaBlob *blob, // trust the dirfrag for now pi->dirstat = pf->fragstat; - assert(!"unmatched fragstat size" == g_conf.mds_verify_scatter); + assert(!"unmatched fragstat size" == g_conf->mds_verify_scatter); } } } @@ -2053,7 +2053,7 @@ void MDCache::predirty_journal_parents(Mutation *mut, EMetaBlob *blob, // trust the dirfrag for now pi->rstat = pf->rstat; - assert(!"unmatched rstat rbytes" == g_conf.mds_verify_scatter); + assert(!"unmatched rstat rbytes" == g_conf->mds_verify_scatter); } } } @@ -5202,7 +5202,7 @@ bool MDCache::trim(int max) { // trim LRU if (max < 0) { - max = g_conf.mds_cache_size; + max = g_conf->mds_cache_size; if (!max) return false; } dout(7) << "trim max=" << max << " cur=" << lru.lru_get_size() << dendl; @@ -5942,7 +5942,7 @@ void MDCache::check_memory_usage() << ", malloc " << last.malloc << " mmap " << last.mmap << ", baseline " << baseline.get_heap() << ", buffers " << (buffer::get_total_alloc() >> 10) - << ", max " << g_conf.mds_mem_max + << ", max " << g_conf->mds_mem_max << ", " << num_inodes_with_caps << " / " << inode_map.size() << " inodes have caps" << ", " << num_caps << " caps, " << caps_per_inode << " caps per inode" << dendl; @@ -5952,14 +5952,14 @@ void MDCache::check_memory_usage() mds->mlogger->set(l_mdm_malloc, last.malloc); /*int size = last.get_total(); - if (size > g_conf.mds_mem_max * .9) { - float ratio = (float)g_conf.mds_mem_max * .9 / (float)size; + if (size > g_conf->mds_mem_max * .9) { + float ratio = (float)g_conf->mds_mem_max * .9 / (float)size; if (ratio < 1.0) mds->server->recall_client_state(ratio); } else */ - if (num_inodes_with_caps > g_conf.mds_cache_size) { - float ratio = (float)g_conf.mds_cache_size * .9 / (float)num_inodes_with_caps; + if (num_inodes_with_caps > g_conf->mds_cache_size) { + float ratio = (float)g_conf->mds_cache_size * .9 / (float)num_inodes_with_caps; if (ratio < 1.0) mds->server->recall_client_state(ratio); } @@ -5985,11 +5985,11 @@ void MDCache::shutdown_check() dout(0) << "shutdown_check at " << g_clock.now() << dendl; // cache - int o = g_conf.debug_mds; - g_conf.debug_mds = 10; + int o = g_conf->debug_mds; + g_conf->debug_mds = 10; show_cache(); - g_conf.debug_mds = o; - mds->timer.add_event_after(g_conf.mds_shutdown_check, new C_MDC_ShutdownCheck(this)); + g_conf->debug_mds = o; + mds->timer.add_event_after(g_conf->mds_shutdown_check, new C_MDC_ShutdownCheck(this)); // this dout(0) << "lru size now " << lru.lru_get_size() << dendl; @@ -6007,10 +6007,10 @@ void MDCache::shutdown_start() { dout(2) << "shutdown_start" << dendl; - if (g_conf.mds_shutdown_check) - mds->timer.add_event_after(g_conf.mds_shutdown_check, new C_MDC_ShutdownCheck(this)); + if (g_conf->mds_shutdown_check) + mds->timer.add_event_after(g_conf->mds_shutdown_check, new C_MDC_ShutdownCheck(this)); - // g_conf.debug_mds = 10; + // g_conf->debug_mds = 10; } @@ -9598,7 +9598,7 @@ void MDCache::fragment_frozen(list& dirs, frag_t basefrag, int bits) list resultfrags; list waiters; adjust_dir_fragments(diri, dirs, basefrag, bits, resultfrags, waiters, false); - if (g_conf.mds_debug_frag) + if (g_conf->mds_debug_frag) diri->verify_dirfrags(); mds->queue_waiters(waiters); @@ -9739,7 +9739,7 @@ void MDCache::handle_fragment_notify(MMDSFragmentNotify *notify) list resultfrags; adjust_dir_fragments(diri, base, bits, resultfrags, waiters, false); - if (g_conf.mds_debug_frag) + if (g_conf->mds_debug_frag) diri->verify_dirfrags(); /* @@ -9768,7 +9768,7 @@ void MDCache::rollback_uncommitted_fragments() list resultfrags; list waiters; adjust_dir_fragments(diri, p->first.frag, -p->second, resultfrags, waiters, true); - if (g_conf.mds_debug_frag) + if (g_conf->mds_debug_frag) diri->verify_dirfrags(); EFragment *le = new EFragment(mds->mdlog, EFragment::OP_ROLLBACK, diri->ino(), p->first.frag, p->second); @@ -9786,7 +9786,7 @@ void MDCache::show_subtrees(int dbl) { //dout(10) << "show_subtrees" << dendl; - if (dbl > g_conf.debug && dbl > g_conf.debug_mds) + if (dbl > g_conf->debug && dbl > g_conf->debug_mds) return; // i won't print anything. if (subtrees.empty()) { diff --git a/src/mds/MDLog.cc b/src/mds/MDLog.cc index a871821cabf0d..dcc9c0450aa12 100644 --- a/src/mds/MDLog.cc +++ b/src/mds/MDLog.cc @@ -29,7 +29,7 @@ #define DOUT_SUBSYS mds #undef DOUT_COND -#define DOUT_COND(l) l<=g_conf.debug_mds || l <= g_conf.debug_mds_log +#define DOUT_COND(l) l<=g_conf->debug_mds || l <= g_conf->debug_mds_log #undef dout_prefix #define dout_prefix *_dout << "mds" << mds->get_nodeid() << ".log " @@ -77,7 +77,7 @@ void MDLog::open_logger() // logger char name[80]; - snprintf(name, sizeof(name), "mds.%s.log", g_conf.name.get_id().c_str()); + snprintf(name, sizeof(name), "mds.%s.log", g_conf->name.get_id().c_str()); logger = new ProfLogger(name, &mdlog_logtype); logger_add(logger); } @@ -157,7 +157,7 @@ void MDLog::submit_entry(LogEvent *le, Context *c) assert(le == cur_event); cur_event = NULL; - if (!g_conf.mds_log) { + if (!g_conf->mds_log) { // hack: log is disabled. if (c) { c->finish(0); @@ -220,7 +220,7 @@ void MDLog::submit_entry(LogEvent *le, Context *c) void MDLog::wait_for_safe(Context *c) { - if (g_conf.mds_log) { + if (g_conf->mds_log) { // wait journaler->wait_for_flush(c); } else { @@ -288,8 +288,8 @@ void MDLog::_logged_subtree_map(uint64_t off) void MDLog::trim(int m) { - int max_segments = g_conf.mds_log_max_segments; - int max_events = g_conf.mds_log_max_events; + int max_segments = g_conf->mds_log_max_segments; + int max_events = g_conf->mds_log_max_events; if (m >= 0) max_events = m; @@ -316,7 +316,7 @@ void MDLog::trim(int m) if (stop < g_clock.now()) break; - if ((int)expiring_segments.size() >= g_conf.mds_log_max_expiring) + if ((int)expiring_segments.size() >= g_conf->mds_log_max_expiring) break; // look at first segment @@ -529,7 +529,7 @@ void MDLog::_replay_thread() bl.hexdump(*_dout); *_dout << dendl; - assert(!!"corrupt log event" == g_conf.mds_log_skip_corrupt_events); + assert(!!"corrupt log event" == g_conf->mds_log_skip_corrupt_events); continue; } diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index d2cdaaccd8442..cbc9d0a902426 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -276,13 +276,13 @@ void MDS::open_logger() // open loggers char name[80]; snprintf(name, sizeof(name), "mds.%s.%llu.log", - g_conf.name.get_id().c_str(), + g_conf->name.get_id().c_str(), (unsigned long long) monc->get_global_id()); logger = new ProfLogger(name, (ProfLogType*)&mds_logtype); logger_add(logger); snprintf(name, sizeof(name), "mds.%s.%llu.mem.log", - g_conf.name.get_id().c_str(), + g_conf->name.get_id().c_str(), (unsigned long long) monc->get_global_id()); mlogger = new ProfLogger(name, (ProfLogType*)&mdm_logtype); logger_add(mlogger); @@ -478,16 +478,16 @@ int MDS::init(int wanted_state) timer.init(); - if (wanted_state==MDSMap::STATE_BOOT && g_conf.mds_standby_replay) + if (wanted_state==MDSMap::STATE_BOOT && g_conf->mds_standby_replay) wanted_state = MDSMap::STATE_STANDBY_REPLAY; // starting beacon. this will induce an MDSMap from the monitor want_state = wanted_state; if (wanted_state==MDSMap::STATE_STANDBY_REPLAY || wanted_state==MDSMap::STATE_ONESHOT_REPLAY) { - g_conf.mds_standby_replay = true; + g_conf->mds_standby_replay = true; if ( wanted_state == MDSMap::STATE_ONESHOT_REPLAY && - (g_conf.mds_standby_for_rank == -1) && - g_conf.mds_standby_for_name.empty()) { + (g_conf->mds_standby_for_rank == -1) && + g_conf->mds_standby_for_name.empty()) { // uh-oh, must specify one or the other! dout(0) << "Specified oneshot replay mode but not an MDS!" << dendl; suicide(); @@ -496,8 +496,8 @@ int MDS::init(int wanted_state) standby_type = wanted_state; } - standby_for_rank = g_conf.mds_standby_for_rank; - standby_for_name.assign(g_conf.mds_standby_for_name); + standby_for_rank = g_conf->mds_standby_for_rank; + standby_for_name.assign(g_conf->mds_standby_for_name); if (wanted_state == MDSMap::STATE_STANDBY_REPLAY && standby_for_rank == -1) { @@ -533,7 +533,7 @@ void MDS::reset_tick() // schedule tick_event = new C_MDS_Tick(this); - timer.add_event_after(g_conf.mds_tick_interval, tick_event); + timer.add_event_after(g_conf->mds_tick_interval, tick_event); } void MDS::tick() @@ -626,7 +626,7 @@ void MDS::beacon_send() // schedule next sender if (beacon_sender) timer.cancel_event(beacon_sender); beacon_sender = new C_MDS_BeaconSender(this); - timer.add_event_after(g_conf.mds_beacon_interval, beacon_sender); + timer.add_event_after(g_conf->mds_beacon_interval, beacon_sender); } @@ -637,8 +637,8 @@ bool MDS::is_laggy() utime_t now = g_clock.now(); utime_t since = now - beacon_last_acked_stamp; - if (since > g_conf.mds_beacon_grace) { - dout(5) << "is_laggy " << since << " > " << g_conf.mds_beacon_grace + if (since > g_conf->mds_beacon_grace) { + dout(5) << "is_laggy " << since << " > " << g_conf->mds_beacon_grace << " since last acked beacon" << dendl; was_laggy = true; return true; @@ -663,7 +663,7 @@ void MDS::handle_mds_beacon(MMDSBeacon *m) << " seq " << m->get_seq() << " rtt " << rtt << dendl; - if (was_laggy && rtt < g_conf.mds_beacon_grace) { + if (was_laggy && rtt < g_conf->mds_beacon_grace) { dout(0) << "handle_mds_beacon no longer laggy" << dendl; was_laggy = false; laggy_until = now; @@ -686,7 +686,7 @@ void MDS::handle_mds_beacon(MMDSBeacon *m) void MDS::reset_beacon_killer() { utime_t when = beacon_last_acked_stamp; - when += g_conf.mds_beacon_grace; + when += g_conf->mds_beacon_grace; dout(25) << "reset_beacon_killer last_acked_stamp at " << beacon_last_acked_stamp << ", will die at " << when << dendl; @@ -717,7 +717,7 @@ void MDS::handle_command(MMonCommand *m) { dout(10) << "handle_command args: " << m->cmd << dendl; if (m->cmd[0] == "injectargs") - g_conf.injectargs(m->cmd[1]); + g_conf->injectargs(m->cmd[1]); else if (m->cmd[0] == "dumpcache") { if (m->cmd.size() > 1) mdcache->dump_cache(m->cmd[1].c_str()); @@ -934,7 +934,7 @@ void MDS::handle_mds_map(MMDSMap *m) objecter->set_client_incarnation(incarnation); // for debug - if (g_conf.mds_dump_cache_on_map) + if (g_conf->mds_dump_cache_on_map) mdcache->dump_cache(); // did it change? @@ -997,7 +997,7 @@ void MDS::handle_mds_map(MMDSMap *m) rejoin_joint_start(); // did we finish? - if (g_conf.mds_dump_cache_after_rejoin && + if (g_conf->mds_dump_cache_after_rejoin && oldmap->is_rejoining() && !mdsmap->is_rejoining()) mdcache->dump_cache(); // for DEBUG only } @@ -1345,7 +1345,7 @@ void MDS::replay_done() if (is_standby_replay()) { dout(10) << "setting replay timer" << dendl; - timer.add_event_after(g_conf.mds_replay_interval, + timer.add_event_after(g_conf->mds_replay_interval, new C_MDS_StandbyReplayRestart(this)); return; } @@ -1361,18 +1361,18 @@ void MDS::replay_done() mdlog->get_journaler()->set_writeable(); mdlog->get_journaler()->trim_tail(); - if (g_conf.mds_wipe_sessions) { + if (g_conf->mds_wipe_sessions) { dout(1) << "wiping out client sessions" << dendl; sessionmap.wipe(); sessionmap.save(new C_NoopContext); } - if (g_conf.mds_wipe_ino_prealloc) { + if (g_conf->mds_wipe_ino_prealloc) { dout(1) << "wiping out ino prealloc from sessions" << dendl; sessionmap.wipe_ino_prealloc(); sessionmap.save(new C_NoopContext); } - if (g_conf.mds_skip_ino) { - inodeno_t i = g_conf.mds_skip_ino; + if (g_conf->mds_skip_ino) { + inodeno_t i = g_conf->mds_skip_ino; dout(1) << "skipping " << i << " inodes" << dendl; inotable->skip_inos(i); inotable->save(new C_NoopContext); @@ -1854,14 +1854,14 @@ bool MDS::_dispatch(Message *m) /*double el = now - start; if (el > 30.0 && el < 60.0)*/ - for (int i=0; imds_thrash_exports; i++) { set s; if (!is_active()) break; mdsmap->get_mds_set(s, MDSMap::STATE_ACTIVE); if (s.size() < 2 || mdcache->get_num_inodes() < 10) break; // need peers for this to work. - dout(7) << "mds thrashing exports pass " << (i+1) << "/" << g_conf.mds_thrash_exports << dendl; + dout(7) << "mds thrashing exports pass " << (i+1) << "/" << g_conf->mds_thrash_exports << dendl; // pick a random dir inode CInode *in = mdcache->hack_pick_random_inode(); @@ -1888,9 +1888,9 @@ bool MDS::_dispatch(Message *m) mdcache->migrator->export_dir_nicely(dir,dest); } // hack: thrash fragments - for (int i=0; imds_thrash_fragments; i++) { if (!is_active()) break; - dout(7) << "mds thrashing fragments pass " << (i+1) << "/" << g_conf.mds_thrash_fragments << dendl; + dout(7) << "mds thrashing fragments pass " << (i+1) << "/" << g_conf->mds_thrash_fragments << dendl; // pick a random dir inode CInode *in = mdcache->hack_pick_random_inode(); diff --git a/src/mds/MDSMap.h b/src/mds/MDSMap.h index df9369f75d34e..ae28ac4271eda 100644 --- a/src/mds/MDSMap.h +++ b/src/mds/MDSMap.h @@ -199,9 +199,9 @@ public: MDSMap() : epoch(0), flags(0), last_failure(0), last_failure_osd_epoch(0), tableserver(0), root(0), cas_pg_pool(-1), metadata_pg_pool(0) { // hack.. this doesn't really belong here - session_timeout = (int)g_conf.mds_session_timeout; - session_autoclose = (int)g_conf.mds_session_autoclose; - max_file_size = g_conf.mds_max_file_size; + session_timeout = (int)g_conf->mds_session_timeout; + session_autoclose = (int)g_conf->mds_session_autoclose; + max_file_size = g_conf->mds_max_file_size; } utime_t get_session_timeout() { @@ -348,7 +348,7 @@ public: continue; if ((p->second.standby_for_rank == MDS_NO_STANDBY_PREF || p->second.standby_for_rank == MDS_MATCHED_ACTIVE || - (p->second.standby_for_rank == MDS_STANDBY_ANY && g_conf.mon_force_standby_active))) { + (p->second.standby_for_rank == MDS_STANDBY_ANY && g_conf->mon_force_standby_active))) { return p->first; } } diff --git a/src/mds/MDSTableClient.cc b/src/mds/MDSTableClient.cc index 71b86a662d424..4bd8deae38bbc 100644 --- a/src/mds/MDSTableClient.cc +++ b/src/mds/MDSTableClient.cc @@ -52,7 +52,7 @@ void MDSTableClient::handle_request(class MMDSTableRequest *m) if (pending_prepare.count(reqid)) { dout(10) << "got agree on " << reqid << " atid " << tid << dendl; - assert(g_conf.mds_kill_mdstable_at != 3); + assert(g_conf->mds_kill_mdstable_at != 3); Context *onfinish = pending_prepare[reqid].onfinish; *pending_prepare[reqid].ptid = tid; @@ -87,7 +87,7 @@ void MDSTableClient::handle_request(class MMDSTableRequest *m) pending_commit[tid]->pending_commit_tids[table].count(tid)) { dout(10) << "got ack on tid " << tid << ", logging" << dendl; - assert(g_conf.mds_kill_mdstable_at != 7); + assert(g_conf->mds_kill_mdstable_at != 7); // remove from committing list pending_commit[tid]->pending_commit_tids[table].erase(tid); @@ -113,7 +113,7 @@ void MDSTableClient::_logged_ack(version_t tid) { dout(10) << "_logged_ack " << tid << dendl; - assert(g_conf.mds_kill_mdstable_at != 8); + assert(g_conf->mds_kill_mdstable_at != 8); // kick any waiters (LogSegment trim) if (ack_waiters.count(tid)) { @@ -159,7 +159,7 @@ void MDSTableClient::commit(version_t tid, LogSegment *ls) pending_commit[tid] = ls; ls->pending_commit_tids[table].insert(tid); - assert(g_conf.mds_kill_mdstable_at != 4); + assert(g_conf->mds_kill_mdstable_at != 4); // send message MMDSTableRequest *req = new MMDSTableRequest(table, TABLESERVER_OP_COMMIT, 0, tid); diff --git a/src/mds/MDSTableServer.cc b/src/mds/MDSTableServer.cc index 1c97f95e40a91..fec3df28bb166 100644 --- a/src/mds/MDSTableServer.cc +++ b/src/mds/MDSTableServer.cc @@ -48,7 +48,7 @@ void MDSTableServer::handle_prepare(MMDSTableRequest *req) _prepare(req->bl, req->reqid, from); _note_prepare(from, req->reqid); - assert(g_conf.mds_kill_mdstable_at != 1); + assert(g_conf->mds_kill_mdstable_at != 1); ETableServer *le = new ETableServer(table, TABLESERVER_OP_PREPARE, req->reqid, from, version, version); mds->mdlog->start_entry(le); @@ -61,7 +61,7 @@ void MDSTableServer::_prepare_logged(MMDSTableRequest *req, version_t tid) { dout(7) << "_create_logged " << *req << " tid " << tid << dendl; - assert(g_conf.mds_kill_mdstable_at != 2); + assert(g_conf->mds_kill_mdstable_at != 2); MMDSTableRequest *reply = new MMDSTableRequest(table, TABLESERVER_OP_AGREE, req->reqid, tid); reply->bl = req->bl; @@ -80,7 +80,7 @@ void MDSTableServer::handle_commit(MMDSTableRequest *req) if (pending_for_mds.count(tid)) { - assert(g_conf.mds_kill_mdstable_at != 5); + assert(g_conf->mds_kill_mdstable_at != 5); _commit(tid); _note_commit(tid); @@ -106,7 +106,7 @@ void MDSTableServer::_commit_logged(MMDSTableRequest *req) { dout(7) << "_commit_logged, sending ACK" << dendl; - assert(g_conf.mds_kill_mdstable_at != 6); + assert(g_conf->mds_kill_mdstable_at != 6); MMDSTableRequest *reply = new MMDSTableRequest(table, TABLESERVER_OP_ACK, req->reqid, req->get_tid()); mds->send_message_mds(reply, req->get_source().num()); diff --git a/src/mds/Migrator.cc b/src/mds/Migrator.cc index bae79037b83bd..68f9cd71acbd9 100644 --- a/src/mds/Migrator.cc +++ b/src/mds/Migrator.cc @@ -78,7 +78,7 @@ #define DOUT_SUBSYS mds #undef DOUT_COND -#define DOUT_COND(l) l <= g_conf.debug_mds || l <= g_conf.debug_mds_migrator +#define DOUT_COND(l) l <= g_conf->debug_mds || l <= g_conf->debug_mds_migrator #undef dout_prefix #define dout_prefix *_dout << "mds" << mds->get_nodeid() << ".migrator " @@ -405,7 +405,7 @@ void Migrator::handle_mds_failure_or_stop(int who) // notify them; wait in aborting state import_notify_abort(dir, bounds); import_state[df] = IMPORT_ABORTING; - assert(g_conf.mds_kill_import_at != 10); + assert(g_conf->mds_kill_import_at != 10); } } break; @@ -496,7 +496,7 @@ void Migrator::show_exporting() void Migrator::audit() { - if (g_conf.debug_mds < 5) return; // hrm. + if (g_conf->debug_mds < 5) return; // hrm. // import_state show_importing(); @@ -664,13 +664,13 @@ void Migrator::export_dir(CDir *dir, int dest) export_peer[dir] = dest; dir->state_set(CDir::STATE_EXPORTING); - assert(g_conf.mds_kill_export_at != 1); + assert(g_conf->mds_kill_export_at != 1); // send ExportDirDiscover (ask target) filepath path; dir->inode->make_path(path); mds->send_message_mds(new MExportDirDiscover(mds->get_nodeid(), path, dir->dirfrag()), dest); - assert(g_conf.mds_kill_export_at != 2); + assert(g_conf->mds_kill_export_at != 2); // start the freeze, but hold it up with an auth_pin. dir->auth_pin(this); @@ -702,7 +702,7 @@ void Migrator::handle_export_discover_ack(MExportDirDiscoverAck *m) // freeze the subtree export_state[dir] = EXPORT_FREEZING; dir->auth_unpin(this); - assert(g_conf.mds_kill_export_at != 3); + assert(g_conf->mds_kill_export_at != 3); } m->put(); // done @@ -838,7 +838,7 @@ void Migrator::export_frozen(CDir *dir) // send. export_state[dir] = EXPORT_PREPPING; mds->send_message_mds(prep, dest); - assert (g_conf.mds_kill_export_at != 4); + assert (g_conf->mds_kill_export_at != 4); } /* This function DOES put the passed message before returning*/ @@ -857,7 +857,7 @@ void Migrator::handle_export_prep_ack(MExportDirPrepAck *m) return; } - assert (g_conf.mds_kill_export_at != 5); + assert (g_conf->mds_kill_export_at != 5); // send warnings int dest = export_peer[dir]; set bounds; @@ -886,7 +886,7 @@ void Migrator::handle_export_prep_ack(MExportDirPrepAck *m) } export_state[dir] = EXPORT_WARNING; - assert(g_conf.mds_kill_export_at != 6); + assert(g_conf->mds_kill_export_at != 6); // nobody to warn? if (export_warning_ack_waiting.count(dir) == 0) export_go(dir); // start export. @@ -934,7 +934,7 @@ void Migrator::export_go_synced(CDir *dir) export_warning_ack_waiting.erase(dir); export_state[dir] = EXPORT_EXPORTING; - assert(g_conf.mds_kill_export_at != 7); + assert(g_conf->mds_kill_export_at != 7); assert(dir->get_cum_auth_pins() == 0); @@ -964,7 +964,7 @@ void Migrator::export_go_synced(CDir *dir) // send mds->send_message_mds(req, dest); - assert(g_conf.mds_kill_export_at != 8); + assert(g_conf->mds_kill_export_at != 8); // stats if (mds->logger) mds->logger->inc(l_mds_ex); @@ -1254,7 +1254,7 @@ void Migrator::handle_export_ack(MExportDirAck *m) export_warning_ack_waiting.erase(dir); export_state[dir] = EXPORT_LOGGINGFINISH; - assert (g_conf.mds_kill_export_at != 9); + assert (g_conf->mds_kill_export_at != 9); set bounds; cache->get_subtree_bounds(dir, bounds); @@ -1283,7 +1283,7 @@ void Migrator::handle_export_ack(MExportDirAck *m) mds->mdlog->submit_entry(le); mds->mdlog->wait_for_safe(new C_MDS_ExportFinishLogged(this, dir)); mds->mdlog->flush(); - assert (g_conf.mds_kill_export_at != 10); + assert (g_conf->mds_kill_export_at != 10); m->put(); } @@ -1391,7 +1391,7 @@ void Migrator::export_logged_finish(CDir *dir) // wait for notifyacks export_state[dir] = EXPORT_NOTIFYING; - assert (g_conf.mds_kill_export_at != 11); + assert (g_conf->mds_kill_export_at != 11); // no notifies to wait for? if (export_notify_ack_waiting[dir].empty()) @@ -1466,7 +1466,7 @@ void Migrator::export_finish(CDir *dir) { dout(5) << "export_finish " << *dir << dendl; - assert (g_conf.mds_kill_export_at != 12); + assert (g_conf->mds_kill_export_at != 12); if (export_state.count(dir) == 0) { dout(7) << "target must have failed, not sending final commit message. export succeeded anyway." << dendl; return; @@ -1478,7 +1478,7 @@ void Migrator::export_finish(CDir *dir) } else { dout(7) << "not sending MExportDirFinish, dest has failed" << dendl; } - assert(g_conf.mds_kill_export_at != 13); + assert(g_conf->mds_kill_export_at != 13); // finish export (adjust local cache state) C_Contexts *fin = new C_Contexts; @@ -1572,7 +1572,7 @@ void Migrator::handle_export_discover(MExportDirDiscover *m) return; } - assert (g_conf.mds_kill_import_at != 1); + assert (g_conf->mds_kill_import_at != 1); // do we have it? CInode *in = cache->get_inode(m->get_dirfrag().ino); @@ -1603,7 +1603,7 @@ void Migrator::handle_export_discover(MExportDirDiscover *m) dout(7) << " sending export_discover_ack on " << *in << dendl; mds->send_message_mds(new MExportDirDiscoverAck(df), import_peer[df]); m->put(); - assert (g_conf.mds_kill_import_at != 2); + assert (g_conf->mds_kill_import_at != 2); } void Migrator::import_reverse_discovering(dirfrag_t df) @@ -1708,7 +1708,7 @@ void Migrator::handle_export_prep(MExportDirPrep *m) // change import state import_state[dir->dirfrag()] = IMPORT_PREPPING; - assert(g_conf.mds_kill_import_at != 3); + assert(g_conf->mds_kill_import_at != 3); import_bound_ls[dir] = m->get_bounds(); // bystander list @@ -1825,7 +1825,7 @@ void Migrator::handle_export_prep(MExportDirPrep *m) // note new state import_state[dir->dirfrag()] = IMPORT_PREPPED; - assert(g_conf.mds_kill_import_at != 4); + assert(g_conf->mds_kill_import_at != 4); // done m->put(); @@ -1854,7 +1854,7 @@ public: /* This function DOES put the passed message before returning*/ void Migrator::handle_export_dir(MExportDir *m) { - assert (g_conf.mds_kill_import_at != 5); + assert (g_conf->mds_kill_import_at != 5); CDir *dir = cache->get_dirfrag(m->dirfrag); assert(dir); @@ -1919,7 +1919,7 @@ void Migrator::handle_export_dir(MExportDir *m) // note state import_state[dir->dirfrag()] = IMPORT_LOGGINGSTART; - assert (g_conf.mds_kill_import_at != 6); + assert (g_conf->mds_kill_import_at != 6); // some stats if (mds->logger) { @@ -2063,7 +2063,7 @@ void Migrator::import_reverse(CDir *dir) dout(7) << "notifying bystanders of abort" << dendl; import_notify_abort(dir, bounds); import_state[dir->dirfrag()] = IMPORT_ABORTING; - assert (g_conf.mds_kill_import_at != 10); + assert (g_conf->mds_kill_import_at != 10); } } @@ -2133,7 +2133,7 @@ void Migrator::import_logged_start(dirfrag_t df, CDir *dir, int from, // note state import_state[dir->dirfrag()] = IMPORT_ACKING; - assert (g_conf.mds_kill_import_at != 7); + assert (g_conf->mds_kill_import_at != 7); // force open client sessions and finish cap import mds->server->finish_force_open_sessions(imported_client_map, sseqmap); @@ -2151,7 +2151,7 @@ void Migrator::import_logged_start(dirfrag_t df, CDir *dir, int from, //assert(dir->replica_map.size() < 2 || mds->whoami != 0); mds->send_message_mds(new MExportDirAck(dir->dirfrag()), from); - assert (g_conf.mds_kill_import_at != 8); + assert (g_conf->mds_kill_import_at != 8); cache->show_subtrees(); } @@ -2172,7 +2172,7 @@ void Migrator::import_finish(CDir *dir) // log finish mds->mdlog->start_submit_entry(new EImportFinish(dir, true)); - assert(g_conf.mds_kill_import_at != 9); + assert(g_conf->mds_kill_import_at != 9); // clear updated scatterlocks /* diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 04a13c0b56ad9..80a61a43dc3ba 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -80,7 +80,7 @@ void Server::open_logger() } char name[80]; - snprintf(name, sizeof(name), "mds.%s.server.log", g_conf.name.get_id().c_str()); + snprintf(name, sizeof(name), "mds.%s.server.log", g_conf->name.get_id().c_str()); logger = new ProfLogger(name, &mdserver_logtype); logger_add(logger); } @@ -405,7 +405,7 @@ void Server::find_idle_sessions() // (caps go stale, lease die) utime_t now = g_clock.now(); utime_t cutoff = now; - cutoff -= g_conf.mds_session_timeout; + cutoff -= g_conf->mds_session_timeout; while (1) { Session *session = mds->sessionmap.get_oldest_session(Session::STATE_OPEN); if (!session) break; @@ -425,7 +425,7 @@ void Server::find_idle_sessions() // autoclose cutoff = now; - cutoff -= g_conf.mds_session_autoclose; + cutoff -= g_conf->mds_session_autoclose; // don't kick clients if we've been laggy if (mds->laggy_until > cutoff) { @@ -543,7 +543,7 @@ void Server::handle_client_reconnect(MClientReconnect *m) mds->clog.info() << "denied reconnect attempt (mds is " << ceph_mds_state_name(mds->get_state()) << ") from " << m->get_source_inst() - << " after " << delay << " (allowed interval " << g_conf.mds_reconnect_timeout << ")\n"; + << " after " << delay << " (allowed interval " << g_conf->mds_reconnect_timeout << ")\n"; mds->messenger->send_message(new MClientSession(CEPH_SESSION_CLOSE), m->get_connection()); m->put(); return; @@ -656,7 +656,7 @@ void Server::reconnect_gather_finish() void Server::reconnect_tick() { utime_t reconnect_end = reconnect_start; - reconnect_end += g_conf.mds_reconnect_timeout; + reconnect_end += g_conf->mds_reconnect_timeout; if (g_clock.now() >= reconnect_end && !client_reconnect_gather.empty()) { dout(10) << "reconnect timed out" << dendl; @@ -698,7 +698,7 @@ void Server::recover_filelocks(CInode *in, bufferlist locks, int64_t client) void Server::recall_client_state(float ratio) { - int max_caps_per_client = (int)(g_conf.mds_cache_size * .8); + int max_caps_per_client = (int)(g_conf->mds_cache_size * .8); int min_caps_per_client = 100; dout(10) << "recall_client_state " << ratio @@ -778,7 +778,7 @@ void Server::reply_request(MDRequest *mdr, int r, CInode *tracei, CDentry *trace void Server::early_reply(MDRequest *mdr, CInode *tracei, CDentry *tracedn) { - if (!g_conf.mds_early_reply) + if (!g_conf->mds_early_reply) return; if (mdr->are_slaves()) { @@ -1644,7 +1644,7 @@ CInode* Server::prepare_new_inode(MDRequest *mdr, CDir *dir, inodeno_t useino, u //assert(0); // just for now. } - int got = g_conf.mds_client_prealloc_inos - mdr->session->get_num_projected_prealloc_inos(); + int got = g_conf->mds_client_prealloc_inos - mdr->session->get_num_projected_prealloc_inos(); if (got > 0) { mds->inotable->project_alloc_ids(mdr->prealloc_inos, got); assert(mdr->prealloc_inos.size()); // or else fix projected increment semantics @@ -1660,7 +1660,7 @@ CInode* Server::prepare_new_inode(MDRequest *mdr, CDir *dir, inodeno_t useino, u memset(&in->inode.dir_layout, 0, sizeof(in->inode.dir_layout)); if (in->inode.is_dir()) - in->inode.dir_layout.dl_dir_hash = g_conf.mds_default_dir_hash; + in->inode.dir_layout.dl_dir_hash = g_conf->mds_default_dir_hash; if (layout) in->inode.layout = *layout; @@ -4847,7 +4847,7 @@ void Server::handle_client_rename(MDRequest *mdr) return; } - assert(g_conf.mds_kill_rename_at != 1); + assert(g_conf->mds_kill_rename_at != 1); // -- open all srcdn inode frags, if any -- // we need these open so that auth can properly delegate from inode to dirfrags @@ -4908,9 +4908,9 @@ void Server::handle_client_rename(MDRequest *mdr) // test hack: bail after slave does prepare, so we can verify it's _live_ rollback. if (!mdr->more()->slaves.empty() && !srci->is_dir()) - assert(g_conf.mds_kill_rename_at != 2); + assert(g_conf->mds_kill_rename_at != 2); if (!mdr->more()->slaves.empty() && srci->is_dir()) - assert(g_conf.mds_kill_rename_at != 3); + assert(g_conf->mds_kill_rename_at != 3); // -- prepare anchor updates -- if (!linkmerge || srcdnl->is_primary()) { @@ -4948,7 +4948,7 @@ void Server::handle_client_rename(MDRequest *mdr) if (anchorgather) return; // waiting for anchor prepares - assert(g_conf.mds_kill_rename_at != 4); + assert(g_conf->mds_kill_rename_at != 4); } // -- prepare journal entry -- @@ -4984,9 +4984,9 @@ void Server::_rename_finish(MDRequest *mdr, CDentry *srcdn, CDentry *destdn, CDe CDentry::linkage_t *destdnl = destdn->get_linkage(); // test hack: test slave commit if (!mdr->more()->slaves.empty() && !destdnl->get_inode()->is_dir()) - assert(g_conf.mds_kill_rename_at != 5); + assert(g_conf->mds_kill_rename_at != 5); if (!mdr->more()->slaves.empty() && destdnl->get_inode()->is_dir()) - assert(g_conf.mds_kill_rename_at != 6); + assert(g_conf->mds_kill_rename_at != 6); // commit anchor updates? if (mdr->more()->src_reanchor_atid) diff --git a/src/mds/journal.cc b/src/mds/journal.cc index 0e66e2262e2e1..4c1758f30c5c7 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -55,7 +55,7 @@ #define DOUT_SUBSYS mds #undef DOUT_COND -#define DOUT_COND(l) l<=g_conf.debug_mds || l <= g_conf.debug_mds_log || l <= g_conf.debug_mds_log_expire +#define DOUT_COND(l) l<=g_conf->debug_mds || l <= g_conf->debug_mds_log || l <= g_conf->debug_mds_log_expire #undef dout_prefix #define dout_prefix *_dout << "mds" << mds->get_nodeid() << ".journal " @@ -293,7 +293,7 @@ C_Gather *LogSegment::try_to_expire(MDS *mds) #undef DOUT_COND -#define DOUT_COND(l) l<=g_conf.debug_mds || l <= g_conf.debug_mds_log +#define DOUT_COND(l) l<=g_conf->debug_mds || l <= g_conf->debug_mds_log // ----------------------- @@ -1133,7 +1133,7 @@ void EFragment::replay(MDS *mds) break; } metablob.replay(mds, _segment); - if (in && g_conf.mds_debug_frag) + if (in && g_conf->mds_debug_frag) in->verify_dirfrags(); } diff --git a/src/mds/mdstypes.h b/src/mds/mdstypes.h index a88ceac4b167a..da54bf07e67c8 100644 --- a/src/mds/mdstypes.h +++ b/src/mds/mdstypes.h @@ -1036,7 +1036,7 @@ inline ostream& operator<<(ostream& out, dirfrag_load_vec_t& dl) { // ugliness! utime_t now = g_clock.now(); - DecayRate rate(g_conf.mds_decay_halflife); + DecayRate rate(g_conf->mds_decay_halflife); return out << "[" << dl.vec[0].get(now, rate) << "," << dl.vec[1].get(now, rate) << " " << dl.meta_load(now, rate) << "]"; @@ -1478,7 +1478,7 @@ protected: if (waiting.empty()) get(PIN_WAITER); waiting.insert(pair(mask, c)); - pdout(10,g_conf.debug_mds) << (mdsco_db_line_prefix(this)) + pdout(10,g_conf->debug_mds) << (mdsco_db_line_prefix(this)) << "add_waiter " << hex << mask << dec << " " << c << " on " << *this << dendl; @@ -1490,14 +1490,14 @@ protected: while (it != waiting.end()) { if (it->first & mask) { ls.push_back(it->second); - pdout(10,g_conf.debug_mds) << (mdsco_db_line_prefix(this)) + pdout(10,g_conf->debug_mds) << (mdsco_db_line_prefix(this)) << "take_waiting mask " << hex << mask << dec << " took " << it->second << " tag " << hex << it->first << dec << " on " << *this << dendl; waiting.erase(it++); } else { - pdout(10,g_conf.debug_mds) << "take_waiting mask " << hex << mask << dec << " SKIPPING " << it->second + pdout(10,g_conf->debug_mds) << "take_waiting mask " << hex << mask << dec << " SKIPPING " << it->second << " tag " << hex << it->first << dec << " on " << *this << dendl; diff --git a/src/mon/AuthMonitor.cc b/src/mon/AuthMonitor.cc index b53ed01cfd939..2b5f70a3f73cc 100644 --- a/src/mon/AuthMonitor.cc +++ b/src/mon/AuthMonitor.cc @@ -94,7 +94,7 @@ void AuthMonitor::create_initial(bufferlist& bl) dout(10) << "create_initial -- creating initial map" << dendl; KeyRing keyring; - if (keyring.load(g_conf.keyring) == 0) { + if (keyring.load(g_conf->keyring) == 0) { import_keyring(keyring); } @@ -181,7 +181,7 @@ void AuthMonitor::increase_max_global_id() { assert(mon->is_leader()); - max_global_id += g_conf.mon_globalid_prealloc; + max_global_id += g_conf->mon_globalid_prealloc; dout(10) << "increasing max_global_id to " << max_global_id << dendl; Incremental inc; inc.inc_type = GLOBAL_ID; diff --git a/src/mon/Elector.cc b/src/mon/Elector.cc index 12370870f57c4..19845c0a77c9a 100644 --- a/src/mon/Elector.cc +++ b/src/mon/Elector.cc @@ -109,7 +109,7 @@ void Elector::reset_timer(double plus) // set the timer cancel_timer(); expire_event = new C_ElectionExpire(this); - mon->timer.add_event_after(g_conf.mon_lease + plus, + mon->timer.add_event_after(g_conf->mon_lease + plus, expire_event); } diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc index 3d42add093cb5..18cc6b74dabdd 100644 --- a/src/mon/MDSMonitor.cc +++ b/src/mon/MDSMonitor.cc @@ -55,7 +55,7 @@ void MDSMonitor::print_map(MDSMap &m, int dbl) void MDSMonitor::create_new_fs(MDSMap &m, int metadata_pool, int data_pool) { - m.max_mds = g_conf.max_mds; + m.max_mds = g_conf->max_mds; m.created = g_clock.now(); m.data_pg_pools.push_back(data_pool); m.metadata_pg_pool = metadata_pool; @@ -624,7 +624,7 @@ int MDSMonitor::fail_mds(std::ostream &ss, const std::string &arg) uint64_t gid = pending_mdsmap.up[w]; if (pending_mdsmap.mds_info.count(gid)) { utime_t until = g_clock.now(); - until += g_conf.mds_blacklist_interval; + until += g_conf->mds_blacklist_interval; MDSMap::mds_info_t& info = pending_mdsmap.mds_info[pending_mdsmap.up[w]]; pending_mdsmap.last_failure_osd_epoch = mon->osdmon()->blacklist(info.addr, until); mon->osdmon()->propose_pending(); @@ -655,7 +655,7 @@ int MDSMonitor::cluster_fail(std::ostream &ss) if (pending_mdsmap.mds_info.size()) { // blacklist all old mds's utime_t until = g_clock.now(); - until += g_conf.mds_blacklist_interval; + until += g_conf->mds_blacklist_interval; for (map::iterator p = pending_mdsmap.up.begin(); p != pending_mdsmap.up.end(); ++p) { @@ -899,7 +899,7 @@ void MDSMonitor::tick() // check beacon timestamps utime_t now = g_clock.now(); utime_t cutoff = now; - cutoff -= g_conf.mds_beacon_grace; + cutoff -= g_conf->mds_beacon_grace; // make sure last_beacon is fully populated for (map::iterator p = pending_mdsmap.mds_info.begin(); @@ -981,7 +981,7 @@ void MDSMonitor::tick() si.state == MDSMap::STATE_STARTING) { // blacklist laggy mds utime_t until = now; - until += g_conf.mds_blacklist_interval; + until += g_conf->mds_blacklist_interval; pending_mdsmap.last_failure_osd_epoch = mon->osdmon()->blacklist(info.addr, until); propose_osdmap = true; } @@ -1155,7 +1155,7 @@ void MDSMonitor::do_stop() // BUG: hrm, if this is the case, the STOPPING guys won't be able to stop, will they? { utime_t until = g_clock.now(); - until += g_conf.mds_blacklist_interval; + until += g_conf->mds_blacklist_interval; pending_mdsmap.last_failure_osd_epoch = mon->osdmon()->blacklist(info.addr, until); propose_osdmap = true; } diff --git a/src/mon/MonClient.cc b/src/mon/MonClient.cc index 2fc67c1c2719a..02e3a0ea9ef86 100644 --- a/src/mon/MonClient.cc +++ b/src/mon/MonClient.cc @@ -55,25 +55,25 @@ MonClient::~MonClient() int MonClient::build_initial_monmap(MonMap &monmap) { // file? - if (!g_conf.monmap.empty()) { + if (!g_conf->monmap.empty()) { int r; try { - r = monmap.read(g_conf.monmap.c_str()); + r = monmap.read(g_conf->monmap.c_str()); } catch (const buffer::error &e) { r = -EINVAL; } if (r >= 0) return 0; - cerr << "unable to read/decode monmap from " << g_conf.monmap + cerr << "unable to read/decode monmap from " << g_conf->monmap << ": " << cpp_strerror(-r) << std::endl; return r; } // -m foo? - if (!g_conf.mon_host.empty()) { + if (!g_conf->mon_host.empty()) { vector addrs; - if (parse_ip_port_vec(g_conf.mon_host.c_str(), addrs)) { + if (parse_ip_port_vec(g_conf->mon_host.c_str(), addrs)) { for (unsigned i=0; imon_host.size() + 1]; hosts = resolve_addrs(old_addrs); delete [] old_addrs; if (!hosts) @@ -104,12 +104,12 @@ int MonClient::build_initial_monmap(MonMap &monmap) return 0; } else cerr << "couldn't parse_ip_port_vec on " << hosts << std::endl; } - cerr << "unable to parse addrs in '" << g_conf.mon_host << "'" << std::endl; + cerr << "unable to parse addrs in '" << g_conf->mon_host << "'" << std::endl; } // What monitors are in the config file? std::vector sections; - int ret = g_conf.get_all_sections(sections); + int ret = g_conf->get_all_sections(sections); if (ret) { cerr << "Unable to find any monitors in the configuration " << "file, because there was an error listing the sections. error " @@ -135,7 +135,7 @@ int MonClient::build_initial_monmap(MonMap &monmap) sections.push_back("mon"); sections.push_back("global"); std::string val; - int res = g_conf.get_val_from_conf_file(sections, "mon addr", val, true); + int res = g_conf->get_val_from_conf_file(sections, "mon addr", val, true); if (res) { cerr << "failed to get an address for mon." << *m << ": error " << res << std::endl; @@ -332,7 +332,7 @@ int MonClient::init() } rotating_secrets = new RotatingKeyRing(cct->module_type, keyring); - entity_name = g_conf.name; + entity_name = g_conf->name; Mutex::Locker l(monc_lock); timer.init(); @@ -342,7 +342,7 @@ int MonClient::init() srand(getpid()); auth_supported.clear(); - string str = g_conf.auth_supported; + string str = g_conf->auth_supported; list sup_list; get_str_list(str, sup_list); for (list::iterator iter = sup_list.begin(); iter != sup_list.end(); ++iter) { @@ -600,9 +600,9 @@ void MonClient::tick() void MonClient::schedule_tick() { if (hunting) - timer.add_event_after(g_conf.mon_client_hunt_interval, new C_Tick(this)); + timer.add_event_after(g_conf->mon_client_hunt_interval, new C_Tick(this)); else - timer.add_event_after(g_conf.mon_client_ping_interval, new C_Tick(this)); + timer.add_event_after(g_conf->mon_client_ping_interval, new C_Tick(this)); } @@ -679,7 +679,7 @@ int MonClient::_check_auth_rotating() } utime_t cutoff = g_clock.now(); - cutoff -= MIN(30.0, g_conf.auth_service_ticket_ttl / 4.0); + cutoff -= MIN(30.0, g_conf->auth_service_ticket_ttl / 4.0); if (!rotating_secrets->need_new_secrets(cutoff)) { dout(10) << "_check_auth_rotating have uptodate secrets (they expire after " << cutoff << ")" << dendl; rotating_secrets->dump_rotating(); diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index c27bc03e7967e..820e8d31f4327 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -331,7 +331,7 @@ void Monitor::handle_command(MMonCommand *m) if (m->cmd[0] == "_injectargs") { dout(0) << "parsing injected options '" << m->cmd[1] << "'" << dendl; - g_conf.injectargs(m->cmd[1]); + g_conf->injectargs(m->cmd[1]); return; } if (m->cmd[0] == "class") { @@ -655,7 +655,7 @@ bool Monitor::_ms_dispatch(Message *m) // set an initial timeout here, so we will trim this session even if they don't // do anything. s->until = g_clock.now(); - s->until += g_conf.mon_subscribe_interval; + s->until += g_conf->mon_subscribe_interval; } else { //give it monitor caps; the peer type has been authenticated reuse_caps = false; @@ -814,7 +814,7 @@ void Monitor::handle_subscribe(MMonSubscribe *m) } s->until = g_clock.now(); - s->until += g_conf.mon_subscribe_interval; + s->until += g_conf->mon_subscribe_interval; for (map::iterator p = m->what.begin(); p != m->what.end(); p++) { @@ -841,7 +841,7 @@ void Monitor::handle_subscribe(MMonSubscribe *m) // ??? if (reply) - messenger->send_message(new MMonSubscribeAck(monmap->get_fsid(), (int)g_conf.mon_subscribe_interval), + messenger->send_message(new MMonSubscribeAck(monmap->get_fsid(), (int)g_conf->mon_subscribe_interval), m->get_source_inst()); s->put(); @@ -935,7 +935,7 @@ public: void Monitor::new_tick() { C_Mon_Tick *ctx = new C_Mon_Tick(this); - timer.add_event_after(g_conf.mon_tick_interval, ctx); + timer.add_event_after(g_conf->mon_tick_interval, ctx); } void Monitor::tick() diff --git a/src/mon/MonitorStore.cc b/src/mon/MonitorStore.cc index 7eedc554d1672..7316a7604e23f 100644 --- a/src/mon/MonitorStore.cc +++ b/src/mon/MonitorStore.cc @@ -91,7 +91,7 @@ int MonitorStore::mount() return -errno; } - if ((!g_conf.chdir.empty()) && (dir[0] != '/')) { + if ((!g_conf->chdir.empty()) && (dir[0] != '/')) { // combine it with the cwd, in case fuse screws things up (i.e. fakefuse) string old = dir; char cwd[PATH_MAX]; @@ -126,7 +126,7 @@ int MonitorStore::mkfs() } dout(0) << "created monfs at " << dir.c_str() << " for " - << g_conf.name.get_id() << dendl; + << g_conf->name.get_id() << dendl; return 0; } diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 6ccaeefe4acdc..8b47782d64b2d 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -489,8 +489,8 @@ bool OSDMonitor::prepare_failure(MOSDFailure *m) << " is adding failure report on osd" << target_osd << dendl; } - if ((reporters >= g_conf.osd_min_down_reporters) && - (reports >= g_conf.osd_min_down_reports)) { + if ((reporters >= g_conf->osd_min_down_reporters) && + (reports >= g_conf->osd_min_down_reports)) { dout(1) << "have enough reports/reporters to mark osd" << target_osd << " as down" << dendl; pending_inc.new_state[target_osd] = CEPH_OSD_UP; @@ -999,10 +999,10 @@ void OSDMonitor::tick() i++; if (osdmap.is_down(o) && osdmap.is_in(o)) { - if (g_conf.mon_osd_down_out_interval > 0 && - down.sec() >= g_conf.mon_osd_down_out_interval) { + if (g_conf->mon_osd_down_out_interval > 0 && + down.sec() >= g_conf->mon_osd_down_out_interval) { dout(10) << "tick marking osd" << o << " OUT after " << down - << " sec (target " << g_conf.mon_osd_down_out_interval << ")" << dendl; + << " sec (target " << g_conf->mon_osd_down_out_interval << ")" << dendl; pending_inc.new_weight[o] = CEPH_OSD_OUT; do_propose = true; @@ -1073,7 +1073,7 @@ void OSDMonitor::tick() void OSDMonitor::handle_osd_timeouts(const utime_t &now, const std::map &last_osd_report) { - utime_t timeo(g_conf.mon_osd_report_timeout, 0); + utime_t timeo(g_conf->mon_osd_report_timeout, 0); int max_osd = osdmap.get_max_osd(); bool new_down = false; @@ -1351,14 +1351,14 @@ int OSDMonitor::prepare_new_pool(string& name, uint64_t auid, int crush_rule) int pool = ++pending_inc.new_pool_max; pending_inc.new_pools[pool].v.type = CEPH_PG_TYPE_REP; - pending_inc.new_pools[pool].v.size = g_conf.osd_pool_default_size; + pending_inc.new_pools[pool].v.size = g_conf->osd_pool_default_size; if (crush_rule >= 0) pending_inc.new_pools[pool].v.crush_ruleset = crush_rule; else - pending_inc.new_pools[pool].v.crush_ruleset = g_conf.osd_pool_default_crush_rule; + pending_inc.new_pools[pool].v.crush_ruleset = g_conf->osd_pool_default_crush_rule; pending_inc.new_pools[pool].v.object_hash = CEPH_STR_HASH_RJENKINS; - pending_inc.new_pools[pool].v.pg_num = g_conf.osd_pool_default_pg_num; - pending_inc.new_pools[pool].v.pgp_num = g_conf.osd_pool_default_pgp_num; + pending_inc.new_pools[pool].v.pg_num = g_conf->osd_pool_default_pg_num; + pending_inc.new_pools[pool].v.pgp_num = g_conf->osd_pool_default_pgp_num; pending_inc.new_pools[pool].v.lpg_num = 0; pending_inc.new_pools[pool].v.lpgp_num = 0; pending_inc.new_pools[pool].v.last_change = pending_inc.epoch; diff --git a/src/mon/PGMap.h b/src/mon/PGMap.h index fc8e3e26a3ec9..48b3a328c7ac0 100644 --- a/src/mon/PGMap.h +++ b/src/mon/PGMap.h @@ -236,8 +236,8 @@ public: last_osdmap_epoch(0), last_pg_scan(0), num_pg(0), num_osd(0), - full_ratio(((float)g_conf.mon_osd_full_ratio)/100), - nearfull_ratio(((float)g_conf.mon_osd_nearfull_ratio)/100) {} + full_ratio(((float)g_conf->mon_osd_full_ratio)/100), + nearfull_ratio(((float)g_conf->mon_osd_nearfull_ratio)/100) {} void encode(bufferlist &bl) { __u8 v = 2; diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc index eabb2455a926a..6d854a4ee4591 100644 --- a/src/mon/PGMonitor.cc +++ b/src/mon/PGMonitor.cc @@ -68,12 +68,12 @@ PGMonitor::PGMonitor(Monitor *mn, Paxos *p) : PaxosService(mn, p) { ratio_monitor = new RatioMonitor(this); - g_conf.add_observer(ratio_monitor); + g_conf->add_observer(ratio_monitor); } PGMonitor::~PGMonitor() { - g_conf.remove_observer(ratio_monitor); + g_conf->remove_observer(ratio_monitor); delete ratio_monitor; } @@ -186,7 +186,7 @@ void PGMonitor::handle_osd_timeouts() if (!mon->is_leader()) return; utime_t now(g_clock.now()); - utime_t timeo(g_conf.mon_osd_report_timeout, 0); + utime_t timeo(g_conf->mon_osd_report_timeout, 0); if (now - mon->get_leader_since() < timeo) { // We haven't been the leader for long enough to consider OSD timeouts return; @@ -722,7 +722,7 @@ void PGMonitor::send_pg_creates() // throttle? if (last_sent_pg_create.count(osd) && - now - g_conf.mon_pg_create_interval < last_sent_pg_create[osd]) + now - g_conf->mon_pg_create_interval < last_sent_pg_create[osd]) continue; dout(20) << "send_pg_creates " << pgid << " -> osd" << osd diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc index ec50a200f81a9..d44a70e64f80e 100644 --- a/src/mon/Paxos.cc +++ b/src/mon/Paxos.cc @@ -97,7 +97,7 @@ void Paxos::collect(version_t oldpn) // set timeout event collect_timeout_event = new C_CollectTimeout(this); - mon->timer.add_event_after(g_conf.mon_accept_timeout, collect_timeout_event); + mon->timer.add_event_after(g_conf->mon_accept_timeout, collect_timeout_event); } @@ -368,7 +368,7 @@ void Paxos::begin(bufferlist& v) // set timeout event accept_timeout_event = new C_AcceptTimeout(this); - mon->timer.add_event_after(g_conf.mon_accept_timeout, accept_timeout_event); + mon->timer.add_event_after(g_conf->mon_accept_timeout, accept_timeout_event); } // peon @@ -526,11 +526,11 @@ void Paxos::extend_lease() assert(is_active()); lease_expire = g_clock.now(); - lease_expire += g_conf.mon_lease; + lease_expire += g_conf->mon_lease; acked_lease.clear(); acked_lease.insert(mon->rank); - dout(7) << "extend_lease now+" << g_conf.mon_lease << " (" << lease_expire << ")" << dendl; + dout(7) << "extend_lease now+" << g_conf->mon_lease << " (" << lease_expire << ")" << dendl; // bcast for (set::const_iterator p = mon->get_quorum().begin(); @@ -548,14 +548,14 @@ void Paxos::extend_lease() // if old timeout is still in place, leave it. if (!lease_ack_timeout_event) { lease_ack_timeout_event = new C_LeaseAckTimeout(this); - mon->timer.add_event_after(g_conf.mon_lease_ack_timeout, lease_ack_timeout_event); + mon->timer.add_event_after(g_conf->mon_lease_ack_timeout, lease_ack_timeout_event); } // set renew event lease_renew_event = new C_LeaseRenew(this); utime_t at = lease_expire; - at -= g_conf.mon_lease; - at += g_conf.mon_lease_renew_interval; + at -= g_conf->mon_lease; + at += g_conf->mon_lease_renew_interval; mon->timer.add_event_at(at, lease_renew_event); } @@ -564,10 +564,10 @@ void Paxos::warn_on_future_time(utime_t t, entity_name_t from) utime_t now = g_clock.now(); if (t > now) { utime_t diff = t - now; - if (diff > g_conf.mon_clock_drift_allowed) { + if (diff > g_conf->mon_clock_drift_allowed) { utime_t warn_diff = now - last_clock_drift_warn; if (warn_diff > - pow(g_conf.mon_clock_drift_warn_backoff, clock_drift_warned)) { + pow(g_conf->mon_clock_drift_warn_backoff, clock_drift_warned)) { mon->clog.warn() << "message from " << from << " was stamped " << diff << "s in the future, clocks not synchronized"; last_clock_drift_warn = g_clock.now(); @@ -612,7 +612,7 @@ void Paxos::handle_lease(MMonPaxos *lease) if (lease_timeout_event) mon->timer.cancel_event(lease_timeout_event); lease_timeout_event = new C_LeaseTimeout(this); - mon->timer.add_event_after(g_conf.mon_lease_ack_timeout, lease_timeout_event); + mon->timer.add_event_after(g_conf->mon_lease_ack_timeout, lease_timeout_event); // trim? trim_to(lease->first_committed); @@ -862,7 +862,7 @@ void Paxos::register_observer(entity_inst_t inst, version_t v) } utime_t timeout = g_clock.now(); - timeout += g_conf.paxos_observer_timeout; + timeout += g_conf->paxos_observer_timeout; observer->timeout = timeout; if (is_readable()) diff --git a/src/mon/PaxosService.cc b/src/mon/PaxosService.cc index 915e4e13f9aae..451e18d5e2035 100644 --- a/src/mon/PaxosService.cc +++ b/src/mon/PaxosService.cc @@ -95,10 +95,10 @@ bool PaxosService::should_propose(double& delay) delay = 0.0; else { utime_t now = g_clock.now(); - if ((now - paxos->last_commit_time) > g_conf.paxos_propose_interval) - delay = (double)g_conf.paxos_min_wait; + if ((now - paxos->last_commit_time) > g_conf->paxos_propose_interval) + delay = (double)g_conf->paxos_min_wait; else - delay = (double)(g_conf.paxos_propose_interval + paxos->last_commit_time + delay = (double)(g_conf->paxos_propose_interval + paxos->last_commit_time - now); } return true; diff --git a/src/msg/Message.cc b/src/msg/Message.cc index 687b794fdf085..24512e0bd104f 100644 --- a/src/msg/Message.cc +++ b/src/msg/Message.cc @@ -139,7 +139,7 @@ void Message::encode() encode_payload(); calc_front_crc(); - if (!g_conf.ms_nocrc) + if (!g_conf->ms_nocrc) calc_data_crc(); else footer.flags = (unsigned)footer.flags | CEPH_MSG_FOOTER_NOCRC; @@ -149,7 +149,7 @@ Message *decode_message(ceph_msg_header& header, ceph_msg_footer& footer, bufferlist& front, bufferlist& middle, bufferlist& data) { // verify crc - if (!g_conf.ms_nocrc) { + if (!g_conf->ms_nocrc) { __u32 front_crc = front.crc32c(0); __u32 middle_crc = middle.crc32c(0); @@ -509,7 +509,7 @@ Message *decode_message(ceph_msg_header& header, ceph_msg_footer& footer, default: dout(0) << "can't decode unknown message type " << type << " MSG_AUTH=" << CEPH_MSG_AUTH << dendl; - if (g_conf.ms_die_on_bad_msg) + if (g_conf->ms_die_on_bad_msg) assert(0); return 0; } @@ -527,7 +527,7 @@ Message *decode_message(ceph_msg_header& header, ceph_msg_footer& footer, dout(0) << "failed to decode message of type " << type << " v" << header.version << ": " << e.what() << dendl; - if (g_conf.ms_die_on_bad_msg) + if (g_conf->ms_die_on_bad_msg) assert(0); return 0; } diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index a27ae6144e7c7..b4c780c2e5962 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -58,7 +58,7 @@ int SimpleMessenger::Accepter::bind(uint64_t nonce, entity_addr_t &bind_addr, in // bind to a socket dout(10) << "accepter.bind" << dendl; - int family = g_conf.ms_bind_ipv6 ? AF_INET6 : AF_INET; + int family = g_conf->ms_bind_ipv6 ? AF_INET6 : AF_INET; switch (bind_addr.get_family()) { case AF_INET: case AF_INET6: @@ -216,7 +216,7 @@ void *SimpleMessenger::Accepter::entry() dout(10) << "accepted incoming on sd " << sd << dendl; // disable Nagle algorithm? - if (g_conf.ms_tcp_nodelay) { + if (g_conf->ms_tcp_nodelay) { int flag = 1; int r = ::setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(flag)); if (r < 0) @@ -1022,7 +1022,7 @@ int SimpleMessenger::Pipe::connect() } // disable Nagle algorithm? - if (g_conf.ms_tcp_nodelay) { + if (g_conf->ms_tcp_nodelay) { int flag = 1; int r = ::setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(flag)); if (r < 0) @@ -1454,13 +1454,13 @@ void SimpleMessenger::Pipe::fault(bool onconnect, bool onread) } else if (backoff == utime_t()) { if (!onconnect) dout(0) << "fault first fault" << dendl; - backoff.set_from_double(g_conf.ms_initial_backoff); + backoff.set_from_double(g_conf->ms_initial_backoff); } else { dout(10) << "fault waiting " << backoff << dendl; cond.WaitInterval(pipe_lock, backoff); backoff += backoff; - if (backoff > g_conf.ms_max_backoff) - backoff.set_from_double(g_conf.ms_max_backoff); + if (backoff > g_conf->ms_max_backoff) + backoff.set_from_double(g_conf->ms_max_backoff); dout(10) << "fault done waiting or woke up" << dendl; } } diff --git a/src/msg/SimpleMessenger.h b/src/msg/SimpleMessenger.h index 228ff7321ed62..2d165c22defd1 100644 --- a/src/msg/SimpleMessenger.h +++ b/src/msg/SimpleMessenger.h @@ -227,7 +227,7 @@ private: out_seq(0), in_seq(0), in_seq_acked(0), reader_thread(this), writer_thread(this) { connection_state->pipe = get(); - messenger->timeout = g_conf.ms_tcp_read_timeout * 1000; //convert to ms + messenger->timeout = g_conf->ms_tcp_read_timeout * 1000; //convert to ms if (messenger->timeout == 0) messenger->timeout = -1; } @@ -249,13 +249,13 @@ private: assert(pipe_lock.is_locked()); assert(!reader_running); reader_running = true; - reader_thread.create(g_conf.ms_rwthread_stack_bytes); + reader_thread.create(g_conf->ms_rwthread_stack_bytes); } void start_writer() { assert(pipe_lock.is_locked()); assert(!writer_running); writer_running = true; - writer_thread.create(g_conf.ms_rwthread_stack_bytes); + writer_thread.create(g_conf->ms_rwthread_stack_bytes); } void join_reader() { if (!reader_running) @@ -557,7 +557,7 @@ public: Messenger(entity_name_t()), accepter(this), lock("SimpleMessenger::lock"), started(false), did_bind(false), - dispatch_throttler(g_conf.ms_dispatch_throttle_bytes), need_addr(true), + dispatch_throttler(g_conf->ms_dispatch_throttle_bytes), need_addr(true), destination_stopped(true), my_type(-1), global_seq_lock("SimpleMessenger::global_seq_lock"), global_seq(0), reaper_thread(this), reaper_started(false), reaper_stop(false), @@ -573,7 +573,7 @@ public: int bind(entity_addr_t bind_addr, int64_t nonce); int bind(uint64_t nonce) { - return bind(g_conf.public_addr, nonce); + return bind(g_conf->public_addr, nonce); } int start_with_nonce(uint64_t nonce); // if we didn't bind int start() { // if we did diff --git a/src/msg/tcp.cc b/src/msg/tcp.cc index aa9c21f177b2f..275ab18dbf1d6 100644 --- a/src/msg/tcp.cc +++ b/src/msg/tcp.cc @@ -15,8 +15,8 @@ int tcp_read(int sd, char *buf, int len, int timeout) while (len > 0) { - if (g_conf.ms_inject_socket_failures && sd >= 0) { - if (rand() % g_conf.ms_inject_socket_failures == 0) { + if (g_conf->ms_inject_socket_failures && sd >= 0) { + if (rand() % g_conf->ms_inject_socket_failures == 0) { generic_dout(0) << "injecting socket failure" << dendl; ::shutdown(sd, SHUT_RDWR); } @@ -92,8 +92,8 @@ int tcp_write(int sd, const char *buf, int len) pfd.fd = sd; pfd.events = POLLOUT | POLLHUP | POLLRDHUP | POLLNVAL | POLLERR; - if (g_conf.ms_inject_socket_failures && sd >= 0) { - if (rand() % g_conf.ms_inject_socket_failures == 0) { + if (g_conf->ms_inject_socket_failures && sd >= 0) { + if (rand() % g_conf->ms_inject_socket_failures == 0) { generic_dout(0) << "injecting socket failure" << dendl; ::shutdown(sd, SHUT_RDWR); } diff --git a/src/os/FileJournal.cc b/src/os/FileJournal.cc index 6fc132cf4dcc8..ad8852dee8451 100644 --- a/src/os/FileJournal.cc +++ b/src/os/FileJournal.cc @@ -122,7 +122,7 @@ int FileJournal::_open_block_device() return -EINVAL; } - int64_t conf_journal_sz(g_conf.osd_journal_size); + int64_t conf_journal_sz(g_conf->osd_journal_size); conf_journal_sz <<= 20; if (bdev_sz < conf_journal_sz) { dout(0) << __func__ << ": you have configured a journal of size " @@ -265,10 +265,10 @@ int FileJournal::_open_file(int64_t oldsize, blksize_t blksize, bool create) { int ret; - int64_t conf_journal_sz(g_conf.osd_journal_size); + int64_t conf_journal_sz(g_conf->osd_journal_size); conf_journal_sz <<= 20; - if ((g_conf.osd_journal_size == 0) && (oldsize < ONE_MEG)) { + if ((g_conf->osd_journal_size == 0) && (oldsize < ONE_MEG)) { derr << "I'm sorry, I don't know how large of a journal to create." << "Please specify a block device to use as the journal OR " << "set osd_journal_size in your ceph.conf" << dendl; @@ -276,7 +276,7 @@ int FileJournal::_open_file(int64_t oldsize, blksize_t blksize, } if (create && (oldsize < conf_journal_sz)) { - uint64_t newsize(g_conf.osd_journal_size); + uint64_t newsize(g_conf->osd_journal_size); newsize <<= 20; dout(10) << "_open extending to " << newsize << " bytes" << dendl; ret = ::ftruncate(fd, newsize); @@ -317,7 +317,7 @@ int FileJournal::create() header.fsid = fsid; header.max_size = max_size; header.block_size = block_size; - if (g_conf.journal_block_align || directio) + if (g_conf->journal_block_align || directio) header.alignment = block_size; else header.alignment = 16; // at least stay word aligned on 64bit machines... @@ -347,7 +347,7 @@ int FileJournal::create() goto free_buf; } - needed_space = g_conf.osd_max_write_size << 20; + needed_space = g_conf->osd_max_write_size << 20; needed_space += (2 * sizeof(entry_header_t)) + get_top(); if (header.max_size - header.start < needed_space) { derr << "FileJournal::create: OSD journal is not large enough to hold " @@ -579,8 +579,8 @@ int FileJournal::prepare_multi_write(bufferlist& bl, uint64_t& orig_ops, uint64_ // gather queued writes off64_t queue_pos = write_pos; - int eleft = g_conf.journal_max_write_entries; - unsigned bmax = g_conf.journal_max_write_bytes; + int eleft = g_conf->journal_max_write_entries; + unsigned bmax = g_conf->journal_max_write_bytes; if (full_state != FULL_NOTFULL) return -ENOSPC; @@ -610,13 +610,13 @@ int FileJournal::prepare_multi_write(bufferlist& bl, uint64_t& orig_ops, uint64_ if (eleft) { if (--eleft == 0) { - dout(20) << "prepare_multi_write hit max events per write " << g_conf.journal_max_write_entries << dendl; + dout(20) << "prepare_multi_write hit max events per write " << g_conf->journal_max_write_entries << dendl; break; } } if (bmax) { if (bl.length() >= bmax) { - dout(20) << "prepare_multi_write hit max write size " << g_conf.journal_max_write_bytes << dendl; + dout(20) << "prepare_multi_write hit max write size " << g_conf->journal_max_write_bytes << dendl; break; } } @@ -1160,8 +1160,8 @@ bool FileJournal::read_entry(bufferlist& bl, uint64_t& seq) void FileJournal::throttle() { - if (throttle_ops.wait(g_conf.journal_queue_max_ops)) + if (throttle_ops.wait(g_conf->journal_queue_max_ops)) dout(1) << "throttle: waited for ops" << dendl; - if (throttle_bytes.wait(g_conf.journal_queue_max_bytes)) + if (throttle_bytes.wait(g_conf->journal_queue_max_bytes)) dout(1) << "throttle: waited for bytes" << dendl; } diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 33ebcef23455d..fab4d3589e096 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -869,7 +869,7 @@ FileStore::FileStore(const std::string &base, const std::string &jdev) : timer(sync_entry_timeo_lock), stop(false), sync_thread(this), op_queue_len(0), op_queue_bytes(0), next_finish(0), - op_tp("FileStore::op_tp", g_conf.filestore_op_threads), op_wq(this, &op_tp), + op_tp("FileStore::op_tp", g_conf->filestore_op_threads), op_wq(this, &op_tp), flusher_queue_len(0), flusher_thread(this), logger(NULL) { @@ -956,7 +956,7 @@ int FileStore::open_journal() { if (journalpath.length()) { dout(10) << "open_journal at " << journalpath << dendl; - journal = new FileJournal(fsid, &finisher, &sync_cond, journalpath.c_str(), g_conf.journal_dio); + journal = new FileJournal(fsid, &finisher, &sync_cond, journalpath.c_str(), g_conf->journal_dio); } return 0; } @@ -1021,12 +1021,12 @@ int FileStore::mkfs() int basedir_fd; struct btrfs_ioctl_vol_args volargs; - if (!g_conf.filestore_dev.empty()) { + if (!g_conf->filestore_dev.empty()) { dout(0) << "mounting" << dendl; - ret = run_cmd("mount", g_conf.filestore_dev.c_str(), (char*)NULL); + ret = run_cmd("mount", g_conf->filestore_dev.c_str(), (char*)NULL); if (ret) { - derr << "FileStore::mkfs: failed to mount g_conf.filestore_dev " - << "'" << g_conf.filestore_dev << "'. Error code " << ret << dendl; + derr << "FileStore::mkfs: failed to mount g_conf->filestore_dev " + << "'" << g_conf->filestore_dev << "'. Error code " << ret << dendl; goto out; } } @@ -1151,9 +1151,9 @@ int FileStore::mkfs() if (ret) goto close_basedir_fd; - if (!g_conf.filestore_dev.empty()) { + if (!g_conf->filestore_dev.empty()) { dout(0) << "umounting" << dendl; - snprintf(buf, sizeof(buf), "umount %s", g_conf.filestore_dev.c_str()); + snprintf(buf, sizeof(buf), "umount %s", g_conf->filestore_dev.c_str()); //system(cmd); } @@ -1253,13 +1253,13 @@ int FileStore::_detect_fs() char buf[80]; // fake collections? - if (g_conf.filestore_fake_collections) { + if (g_conf->filestore_fake_collections) { dout(0) << "faking collections (in memory)" << dendl; fake_collections = true; } // xattrs? - if (g_conf.filestore_fake_attrs) { + if (g_conf->filestore_fake_attrs) { dout(0) << "faking xattrs (in memory)" << dendl; fake_attrs = true; } else { @@ -1306,7 +1306,7 @@ int FileStore::_detect_fs() btrfs = true; // clone_range? - if (g_conf.filestore_btrfs_clone_range) { + if (g_conf->filestore_btrfs_clone_range) { btrfs_clone_range = true; int r = _do_clone_range(fsid_fd, -1, 0, 1); if (r == -EBADF) { @@ -1339,14 +1339,14 @@ int FileStore::_detect_fs() dout(0) << "mount btrfs SNAP_CREATE failed: " << strerror_r(-r, buf, sizeof(buf)) << dendl; } - if (g_conf.filestore_btrfs_snap && !btrfs_snap_destroy) { + if (g_conf->filestore_btrfs_snap && !btrfs_snap_destroy) { dout(0) << "mount btrfs snaps enabled, but no SNAP_DESTROY ioctl (from kernel 2.6.32+)" << dendl; cerr << TEXT_YELLOW << " ** WARNING: 'filestore btrfs snap' was enabled (for safe transactions, rollback),\n" << " but btrfs does not support the SNAP_DESTROY ioctl (added in\n" << " Linux 2.6.32). Disabling.\n" << TEXT_NORMAL; - g_conf.filestore_btrfs_snap = false; + g_conf->filestore_btrfs_snap = false; } // start_sync? @@ -1405,7 +1405,7 @@ int FileStore::_detect_fs() } } - if (g_conf.filestore_btrfs_snap && !btrfs_snap_create_v2) { + if (g_conf->filestore_btrfs_snap && !btrfs_snap_create_v2) { dout(0) << "mount WARNING: btrfs snaps enabled, but no SNAP_CREATE_V2 ioctl (from kernel 2.6.37+)" << dendl; cerr << TEXT_YELLOW << " ** WARNING: 'filestore btrfs snap' is enabled (for safe transactions,\n" @@ -1427,9 +1427,9 @@ int FileStore::_sanity_check_fs() { // sanity check(s) - if ((int)g_conf.filestore_journal_writeahead + - (int)g_conf.filestore_journal_parallel + - (int)g_conf.filestore_journal_trailing > 1) { + if ((int)g_conf->filestore_journal_writeahead + + (int)g_conf->filestore_journal_parallel + + (int)g_conf->filestore_journal_trailing > 1) { dout(0) << "mount ERROR: more than one of filestore journal {writeahead,parallel,trailing} enabled" << dendl; cerr << TEXT_RED << " ** WARNING: more than one of 'filestore journal {writeahead,parallel,trailing}'\n" @@ -1439,7 +1439,7 @@ int FileStore::_sanity_check_fs() } if (!btrfs) { - if (!journal || !g_conf.filestore_journal_writeahead) { + if (!journal || !g_conf->filestore_journal_writeahead) { dout(0) << "mount WARNING: no btrfs, and no journal in writeahead mode; data may be lost" << dendl; cerr << TEXT_RED << " ** WARNING: no btrfs AND (no journal OR journal not in writeahead mode)\n" @@ -1513,9 +1513,9 @@ int FileStore::mount() uint64_t initial_op_seq; set cluster_snaps; - if (!g_conf.filestore_dev.empty()) { + if (!g_conf->filestore_dev.empty()) { dout(0) << "mounting" << dendl; - //run_cmd("mount", g_conf.filestore_dev, (char*)NULL); + //run_cmd("mount", g_conf->filestore_dev, (char*)NULL); } dout(5) << "basedir " << basedir << " journal " << journalpath << dendl; @@ -1603,14 +1603,14 @@ int FileStore::mount() dout(0) << "mount found cluster snaps " << cluster_snaps << dendl; } - if (g_conf.osd_rollback_to_cluster_snap.length() && - cluster_snaps.count(g_conf.osd_rollback_to_cluster_snap) == 0) { - derr << "rollback to cluster snapshot '" << g_conf.osd_rollback_to_cluster_snap << "': not found" << dendl; + if (g_conf->osd_rollback_to_cluster_snap.length() && + cluster_snaps.count(g_conf->osd_rollback_to_cluster_snap) == 0) { + derr << "rollback to cluster snapshot '" << g_conf->osd_rollback_to_cluster_snap << "': not found" << dendl; ret = -ENOENT; goto close_basedir_fd; } - if (btrfs && g_conf.filestore_btrfs_snap) { + if (btrfs && g_conf->filestore_btrfs_snap) { if (snaps.empty()) { dout(0) << "mount WARNING: no consistent snaps found, store may be in inconsistent state" << dendl; } else if (!btrfs) { @@ -1618,14 +1618,14 @@ int FileStore::mount() } else { char s[PATH_MAX]; - if (g_conf.osd_rollback_to_cluster_snap.length()) { + if (g_conf->osd_rollback_to_cluster_snap.length()) { derr << TEXT_RED - << " ** NOTE: rolling back to cluster snapshot " << g_conf.osd_rollback_to_cluster_snap << " **" + << " ** NOTE: rolling back to cluster snapshot " << g_conf->osd_rollback_to_cluster_snap << " **" << TEXT_NORMAL << dendl; - assert(cluster_snaps.count(g_conf.osd_rollback_to_cluster_snap)); + assert(cluster_snaps.count(g_conf->osd_rollback_to_cluster_snap)); snprintf(s, sizeof(s), "%s/" CLUSTER_SNAP_ITEM, basedir.c_str(), - g_conf.osd_rollback_to_cluster_snap.c_str()); + g_conf->osd_rollback_to_cluster_snap.c_str()); } else { uint64_t curr_seq; { @@ -1639,7 +1639,7 @@ int FileStore::mount() dout(10) << " most recent snap from " << snaps << " is " << cp << dendl; if (cp != curr_seq) { - if (!g_conf.osd_use_stale_snap) { + if (!g_conf->osd_use_stale_snap) { derr << TEXT_RED << " ** ERROR: current volume data version is not equal to snapshotted version\n" << " which can lead to data inconsistency. \n" @@ -1723,31 +1723,31 @@ int FileStore::mount() // select journal mode? if (journal) { - if (!g_conf.filestore_journal_writeahead && - !g_conf.filestore_journal_parallel && - !g_conf.filestore_journal_trailing) { + if (!g_conf->filestore_journal_writeahead && + !g_conf->filestore_journal_parallel && + !g_conf->filestore_journal_trailing) { if (!btrfs) { - g_conf.filestore_journal_writeahead = true; + g_conf->filestore_journal_writeahead = true; dout(0) << "mount: enabling WRITEAHEAD journal mode: btrfs not detected" << dendl; - } else if (!g_conf.filestore_btrfs_snap) { - g_conf.filestore_journal_writeahead = true; + } else if (!g_conf->filestore_btrfs_snap) { + g_conf->filestore_journal_writeahead = true; dout(0) << "mount: enabling WRITEAHEAD journal mode: 'filestore btrfs snap' mode is not enabled" << dendl; } else if (!btrfs_snap_create_v2) { - g_conf.filestore_journal_writeahead = true; + g_conf->filestore_journal_writeahead = true; dout(0) << "mount: enabling WRITEAHEAD journal mode: btrfs SNAP_CREATE_V2 ioctl not detected (v2.6.37+)" << dendl; } else { - g_conf.filestore_journal_parallel = true; + g_conf->filestore_journal_parallel = true; dout(0) << "mount: enabling PARALLEL journal mode: btrfs, SNAP_CREATE_V2 detected and 'filestore btrfs snap' mode is enabled" << dendl; } } else { - if (g_conf.filestore_journal_writeahead) + if (g_conf->filestore_journal_writeahead) dout(0) << "mount: WRITEAHEAD journal mode explicitly enabled in conf" << dendl; - if (g_conf.filestore_journal_parallel) + if (g_conf->filestore_journal_parallel) dout(0) << "mount: PARALLEL journal mode explicitly enabled in conf" << dendl; - if (g_conf.filestore_journal_trailing) + if (g_conf->filestore_journal_trailing) dout(0) << "mount: TRAILING journal mode explicitly enabled in conf" << dendl; } - if (g_conf.filestore_journal_writeahead) + if (g_conf->filestore_journal_writeahead) journal->set_wait_on_full(true); } @@ -1834,9 +1834,9 @@ int FileStore::umount() basedir_fd = -1; } - if (!g_conf.filestore_dev.empty()) { + if (!g_conf->filestore_dev.empty()) { dout(0) << "umounting" << dendl; - //run_cmd("umount", g_conf.filestore_dev, (char*)NULL); + //run_cmd("umount", g_conf->filestore_dev, (char*)NULL); } { @@ -1986,12 +1986,12 @@ void FileStore::op_queue_reserve_throttle(Op *o) void FileStore::_op_queue_reserve_throttle(Op *o, const char *caller) { // Do not call while holding the journal lock! - uint64_t max_ops = g_conf.filestore_queue_max_ops; - uint64_t max_bytes = g_conf.filestore_queue_max_bytes; + uint64_t max_ops = g_conf->filestore_queue_max_ops; + uint64_t max_bytes = g_conf->filestore_queue_max_bytes; if (is_committing()) { - max_ops += g_conf.filestore_queue_committing_max_ops; - max_bytes += g_conf.filestore_queue_committing_max_bytes; + max_ops += g_conf->filestore_queue_committing_max_ops; + max_bytes += g_conf->filestore_queue_committing_max_bytes; } if (logger) { @@ -2127,19 +2127,19 @@ int FileStore::queue_transactions(Sequencer *posr, list &tls, //logger->inc(l_os_in_bytes, 1); } - if (journal && journal->is_writeable() && !g_conf.filestore_journal_trailing) { + if (journal && journal->is_writeable() && !g_conf->filestore_journal_trailing) { Op *o = build_op(tls, onreadable, onreadable_sync); op_queue_reserve_throttle(o); journal->throttle(); o->op = op_submit_start(); - if (g_conf.filestore_journal_parallel) { + if (g_conf->filestore_journal_parallel) { dout(5) << "queue_transactions (parallel) " << o->op << " " << o->tls << dendl; _op_journal_transactions(o->tls, o->op, ondisk); // queue inside journal lock, to preserve ordering queue_op(osr, o); - } else if (g_conf.filestore_journal_writeahead) { + } else if (g_conf->filestore_journal_writeahead) { dout(5) << "queue_transactions (writeahead) " << o->op << " " << o->tls << dendl; osr->queue_journal(o->op); @@ -2269,7 +2269,7 @@ int FileStore::_transaction_start(uint64_t bytes, uint64_t ops) return 0; #else if (!btrfs || !btrfs_trans_start_end || - !g_conf.filestore_btrfs_trans) + !g_conf->filestore_btrfs_trans) return 0; char buf[80]; @@ -2303,7 +2303,7 @@ void FileStore::_transaction_finish(int fd) return; #else if (!btrfs || !btrfs_trans_start_end || - !g_conf.filestore_btrfs_trans) + !g_conf->filestore_btrfs_trans) return; char fn[PATH_MAX]; @@ -2746,9 +2746,9 @@ int FileStore::_write(coll_t cid, const sobject_t& oid, // flush? #ifdef HAVE_SYNC_FILE_RANGE - if (!g_conf.filestore_flusher || + if (!g_conf->filestore_flusher || !queue_flusher(fd, offset, len)) { - if (g_conf.filestore_sync_flush) + if (g_conf->filestore_sync_flush) ::sync_file_range(fd, offset, len, SYNC_FILE_RANGE_WRITE); ::close(fd); } @@ -2896,7 +2896,7 @@ bool FileStore::queue_flusher(int fd, uint64_t off, uint64_t len) { bool queued; lock.Lock(); - if (flusher_queue_len < g_conf.filestore_flusher_max_fds) { + if (flusher_queue_len < g_conf->filestore_flusher_max_fds) { flusher_queue.push_back(sync_epoch); flusher_queue.push_back(fd); flusher_queue.push_back(off); @@ -2910,7 +2910,7 @@ bool FileStore::queue_flusher(int fd, uint64_t off, uint64_t len) } else { dout(10) << "queue_flusher ep " << sync_epoch << " fd " << fd << " " << off << "~" << len << " qlen " << flusher_queue_len - << " hit flusher_max_fds " << g_conf.filestore_flusher_max_fds + << " hit flusher_max_fds " << g_conf->filestore_flusher_max_fds << ", skipping async flush" << dendl; queued = false; } @@ -2970,7 +2970,7 @@ public: void finish(int r) { BackTrace *bt = new BackTrace(1); generic_dout(-1) << "FileStore: sync_entry timed out after " - << g_conf.filestore_commit_timeout << " seconds.\n"; + << g_conf->filestore_commit_timeout << " seconds.\n"; bt->print(*_dout); *_dout << dendl; delete bt; @@ -2983,9 +2983,9 @@ void FileStore::sync_entry() lock.Lock(); while (!stop) { utime_t max_interval; - max_interval.set_from_double(g_conf.filestore_max_sync_interval); + max_interval.set_from_double(g_conf->filestore_max_sync_interval); utime_t min_interval; - min_interval.set_from_double(g_conf.filestore_min_sync_interval); + min_interval.set_from_double(g_conf->filestore_min_sync_interval); utime_t startwait = g_clock.now(); if (!force_sync) { @@ -3023,7 +3023,7 @@ void FileStore::sync_entry() SyncEntryTimeout *sync_entry_timeo = new SyncEntryTimeout(); sync_entry_timeo_lock.Lock(); - timer.add_event_after(g_conf.filestore_commit_timeout, sync_entry_timeo); + timer.add_event_after(g_conf->filestore_commit_timeout, sync_entry_timeo); sync_entry_timeo_lock.Unlock(); if (logger) @@ -3035,7 +3035,7 @@ void FileStore::sync_entry() dout(15) << "sync_entry committing " << cp << " sync_epoch " << sync_epoch << dendl; write_op_seq(op_fd, cp); - bool do_snap = btrfs && g_conf.filestore_btrfs_snap; + bool do_snap = btrfs && g_conf->filestore_btrfs_snap; if (do_snap) { @@ -3087,7 +3087,7 @@ void FileStore::sync_entry() dout(15) << "sync_entry doing btrfs SYNC" << dendl; // do a full btrfs commit ::ioctl(op_fd, BTRFS_IOC_SYNC); - } else if (g_conf.filestore_fsync_flushes_journal_data) { + } else if (g_conf->filestore_fsync_flushes_journal_data) { dout(15) << "sync_entry doing fsync on " << current_op_seq_fn << dendl; // make the file system's journal commit. // this works with ext3, but NOT ext4 @@ -3205,7 +3205,7 @@ void FileStore::flush() { dout(10) << "flush" << dendl; - if (g_conf.filestore_journal_writeahead) { + if (g_conf->filestore_journal_writeahead) { if (journal) journal->flush(); dout(10) << "flush draining ondisk finisher" << dendl; @@ -3223,11 +3223,11 @@ void FileStore::sync_and_flush() { dout(10) << "sync_and_flush" << dendl; - if (g_conf.filestore_journal_writeahead) { + if (g_conf->filestore_journal_writeahead) { if (journal) journal->flush(); _flush_op_queue(); - } else if (g_conf.filestore_journal_parallel) { + } else if (g_conf->filestore_journal_parallel) { _flush_op_queue(); sync(); } else { diff --git a/src/os/JournalingObjectStore.cc b/src/os/JournalingObjectStore.cc index 22dc1620b06c0..2041f5e1ae2cd 100644 --- a/src/os/JournalingObjectStore.cc +++ b/src/os/JournalingObjectStore.cc @@ -251,7 +251,7 @@ void JournalingObjectStore::_op_journal_transactions(list::iterator p = tls.begin(); p != tls.end(); p++) { ObjectStore::Transaction *t = *p; if (t->get_data_length() > data_len && - (int)t->get_data_length() >= g_conf.journal_align_min_size) { + (int)t->get_data_length() >= g_conf->journal_align_min_size) { data_len = t->get_data_length(); data_align = (t->get_data_alignment() - tbl.length()) & ~PAGE_MASK; } diff --git a/src/osd/ClassHandler.cc b/src/osd/ClassHandler.cc index c644db6c5651b..33e4454c4be81 100644 --- a/src/osd/ClassHandler.cc +++ b/src/osd/ClassHandler.cc @@ -53,7 +53,7 @@ int ClassHandler::_load_class(ClassData *cls) cls->status == ClassData::CLASS_MISSING) { char fname[PATH_MAX]; snprintf(fname, sizeof(fname), "%s/libcls_%s.so", - g_conf.osd_class_dir.c_str(), + g_conf->osd_class_dir.c_str(), cls->name.c_str()); dout(10) << "_load_class " << cls->name << " from " << fname << dendl; diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 07828a83c514b..861eead1ebe8e 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -132,7 +132,7 @@ create_object_store(const std::string &dev, const std::string &jdev) if (::stat(dev.c_str(), &st) != 0) return 0; - if (g_conf.filestore) + if (g_conf->filestore) return new FileStore(dev, jdev); if (S_ISDIR(st.st_mode)) @@ -175,20 +175,20 @@ int OSD::mkfs(const std::string &dev, const std::string &jdev, ceph_fsid_t fsid, } // age? - if (g_conf.osd_age_time != 0) { - if (g_conf.osd_age_time >= 0) { + if (g_conf->osd_age_time != 0) { + if (g_conf->osd_age_time >= 0) { dout(0) << "aging..." << dendl; Ager ager(store); - ager.age(g_conf.osd_age_time, - g_conf.osd_age, - g_conf.osd_age - .05, + ager.age(g_conf->osd_age_time, + g_conf->osd_age, + g_conf->osd_age - .05, 50000, - g_conf.osd_age - .05); + g_conf->osd_age - .05); } } // benchmark? - if (g_conf.osd_auto_weight) { + if (g_conf->osd_auto_weight) { bufferlist bl; bufferptr bp(1048576); bp.zero(); @@ -416,9 +416,9 @@ OSD::OSD(int id, Messenger *internal_messenger, Messenger *external_messenger, ceph_osd_feature_ro_compat, ceph_osd_feature_incompat), state(STATE_BOOTING), boot_epoch(0), up_epoch(0), - op_tp("OSD::op_tp", g_conf.osd_op_threads), - recovery_tp("OSD::recovery_tp", g_conf.osd_recovery_threads), - disk_tp("OSD::disk_tp", g_conf.osd_disk_threads), + op_tp("OSD::op_tp", g_conf->osd_op_threads), + recovery_tp("OSD::recovery_tp", g_conf->osd_recovery_threads), + disk_tp("OSD::disk_tp", g_conf->osd_disk_threads), heartbeat_lock("OSD::heartbeat_lock"), heartbeat_stop(false), heartbeat_epoch(0), heartbeat_messenger(hbm), @@ -427,9 +427,9 @@ OSD::OSD(int id, Messenger *internal_messenger, Messenger *external_messenger, decayrate(5.0), stat_oprate(), peer_stat_lock("OSD::peer_stat_lock"), - read_latency_calc(g_conf.osd_max_opq<1 ? 1:g_conf.osd_max_opq), + read_latency_calc(g_conf->osd_max_opq<1 ? 1:g_conf->osd_max_opq), qlen_calc(3), - iat_averager(g_conf.osd_flash_crowd_iat_alpha), + iat_averager(g_conf->osd_flash_crowd_iat_alpha), finished_lock("OSD::finished_lock"), op_wq(this, &op_tp), osdmap(NULL), @@ -611,7 +611,7 @@ int OSD::init() heartbeat_thread.create(); // tick - timer.add_event_after(g_conf.osd_heartbeat_interval, new C_Tick(this)); + timer.add_event_after(g_conf->osd_heartbeat_interval, new C_Tick(this)); if (false) { signal(SIGTERM, handle_signal); @@ -709,10 +709,10 @@ void OSD::start_logger() int OSD::shutdown() { - g_conf.debug_osd = 100; - g_conf.debug_journal = 100; - g_conf.debug_filestore = 100; - g_conf.debug_ms = 100; + g_conf->debug_osd = 100; + g_conf->debug_journal = 100; + g_conf->debug_filestore = 100; + g_conf->debug_ms = 100; derr << "OSD::shutdown" << dendl; @@ -1320,7 +1320,7 @@ void OSD::_refresh_my_stat(utime_t now) assert(peer_stat_lock.is_locked()); // refresh? - if (now - my_stat.stamp > g_conf.osd_stat_refresh_interval || + if (now - my_stat.stamp > g_conf->osd_stat_refresh_interval || pending_ops > 2*my_stat.qlen) { update_osd_stat(); @@ -1682,7 +1682,7 @@ void OSD::heartbeat_entry() while (!heartbeat_stop) { heartbeat(); - double wait = .5 + ((float)(rand() % 10)/10.0) * (float)g_conf.osd_heartbeat_interval; + double wait = .5 + ((float)(rand() % 10)/10.0) * (float)g_conf->osd_heartbeat_interval; utime_t w; w.set_from_double(wait); dout(30) << "heartbeat_entry sleeping for " << wait << dendl; @@ -1699,7 +1699,7 @@ void OSD::heartbeat_check() // check for incoming heartbeats (move me elsewhere?) utime_t grace = g_clock.now(); - grace -= g_conf.osd_heartbeat_grace; + grace -= g_conf->osd_heartbeat_grace; for (map::iterator p = heartbeat_from.begin(); p != heartbeat_from.end(); p++) { @@ -1792,7 +1792,7 @@ void OSD::heartbeat() // hmm.. am i all alone? dout(30) << "heartbeat lonely?" << dendl; if (heartbeat_from.empty() || heartbeat_to.empty()) { - if (now - last_mon_heartbeat > g_conf.osd_mon_heartbeat_interval) { + if (now - last_mon_heartbeat > g_conf->osd_mon_heartbeat_interval) { last_mon_heartbeat = now; dout(10) << "i have no heartbeat peers; checking mon for new map" << dendl; monc->sub_want("osdmap", osdmap->get_epoch() + 1, CEPH_SUBSCRIBE_ONETIME); @@ -1841,11 +1841,11 @@ void OSD::tick() // mon report? utime_t now = g_clock.now(); - if (now - last_pg_stats_sent > g_conf.osd_mon_report_interval_max) { + if (now - last_pg_stats_sent > g_conf->osd_mon_report_interval_max) { osd_stat_updated = true; do_mon_report(); } - else if (now - last_mon_report > g_conf.osd_mon_report_interval_min) { + else if (now - last_mon_report > g_conf->osd_mon_report_interval_min) { do_mon_report(); } @@ -2242,7 +2242,7 @@ void OSD::handle_command(MMonCommand *m) dout(20) << "handle_command args: " << m->cmd << dendl; if (m->cmd[0] == "injectargs") - g_conf.injectargs(m->cmd[1]); + g_conf->injectargs(m->cmd[1]); else if (m->cmd[0] == "stop") { dout(0) << "got shutdown" << dendl; shutdown(); @@ -2367,12 +2367,12 @@ void OSD::handle_command(MMonCommand *m) fout.close(); } else if (m->cmd.size() == 3 && m->cmd[1] == "kick_recovery_wq") { - g_conf.osd_recovery_delay_start = atoi(m->cmd[2].c_str()); + g_conf->osd_recovery_delay_start = atoi(m->cmd[2].c_str()); clog.info() << "kicking recovery queue. set osd_recovery_delay_start " - << "to " << g_conf.osd_recovery_delay_start << "\n"; + << "to " << g_conf->osd_recovery_delay_start << "\n"; defer_recovery_until = g_clock.now(); - defer_recovery_until += g_conf.osd_recovery_delay_start; + defer_recovery_until += g_conf->osd_recovery_delay_start; recovery_wq.kick(); } } @@ -2833,9 +2833,9 @@ bool OSD::scrub_should_schedule() return false; } - if (loadavgs[0] >= g_conf.osd_scrub_load_threshold) { + if (loadavgs[0] >= g_conf->osd_scrub_load_threshold) { dout(20) << "scrub_should_schedule loadavg " << loadavgs[0] - << " >= max " << g_conf.osd_scrub_load_threshold + << " >= max " << g_conf->osd_scrub_load_threshold << " = no, load too high" << dendl; return false; } @@ -2843,16 +2843,16 @@ bool OSD::scrub_should_schedule() bool coin_flip = (rand() % 3) == whoami % 3; if (!coin_flip) { dout(20) << "scrub_should_schedule loadavg " << loadavgs[0] - << " < max " << g_conf.osd_scrub_load_threshold + << " < max " << g_conf->osd_scrub_load_threshold << " = no, randomly backing off" << dendl; return false; } dout(20) << "scrub_should_schedule loadavg " << loadavgs[0] - << " < max " << g_conf.osd_scrub_load_threshold + << " < max " << g_conf->osd_scrub_load_threshold << " = yes" << dendl; - return loadavgs[0] < g_conf.osd_scrub_load_threshold; + return loadavgs[0] < g_conf->osd_scrub_load_threshold; } void OSD::sched_scrub() @@ -2863,7 +2863,7 @@ void OSD::sched_scrub() pair pos; utime_t max = g_clock.now(); - max -= g_conf.osd_scrub_max_interval; + max -= g_conf->osd_scrub_max_interval; sched_scrub_lock.Lock(); @@ -2878,7 +2878,7 @@ void OSD::sched_scrub() if (t > max) { dout(10) << " " << pgid << " at " << t - << " > " << max << " (" << g_conf.osd_scrub_max_interval << " seconds ago)" << dendl; + << " > " << max << " (" << g_conf->osd_scrub_max_interval << " seconds ago)" << dendl; break; } @@ -2911,13 +2911,13 @@ bool OSD::inc_scrubs_pending() bool result = false; sched_scrub_lock.Lock(); - if (scrubs_pending + scrubs_active < g_conf.osd_max_scrubs) { + if (scrubs_pending + scrubs_active < g_conf->osd_max_scrubs) { dout(20) << "inc_scrubs_pending " << scrubs_pending << " -> " << (scrubs_pending+1) - << " (max " << g_conf.osd_max_scrubs << ", active " << scrubs_active << ")" << dendl; + << " (max " << g_conf->osd_max_scrubs << ", active " << scrubs_active << ")" << dendl; result = true; ++scrubs_pending; } else { - dout(20) << "inc_scrubs_pending " << scrubs_pending << " + " << scrubs_active << " active >= max " << g_conf.osd_max_scrubs << dendl; + dout(20) << "inc_scrubs_pending " << scrubs_pending << " + " << scrubs_active << " active >= max " << g_conf->osd_max_scrubs << dendl; } sched_scrub_lock.Unlock(); @@ -2928,7 +2928,7 @@ void OSD::dec_scrubs_pending() { sched_scrub_lock.Lock(); dout(20) << "dec_scrubs_pending " << scrubs_pending << " -> " << (scrubs_pending-1) - << " (max " << g_conf.osd_max_scrubs << ", active " << scrubs_active << ")" << dendl; + << " (max " << g_conf->osd_max_scrubs << ", active " << scrubs_active << ")" << dendl; --scrubs_pending; assert(scrubs_pending >= 0); sched_scrub_lock.Unlock(); @@ -2938,7 +2938,7 @@ void OSD::dec_scrubs_active() { sched_scrub_lock.Lock(); dout(20) << "dec_scrubs_active " << scrubs_active << " -> " << (scrubs_active-1) - << " (max " << g_conf.osd_max_scrubs << ", pending " << scrubs_pending << ")" << dendl; + << " (max " << g_conf->osd_max_scrubs << ", pending " << scrubs_pending << ")" << dendl; --scrubs_active; sched_scrub_lock.Unlock(); } @@ -4759,9 +4759,9 @@ bool OSD::queue_for_recovery(PG *pg) bool OSD::_recover_now() { - if (recovery_ops_active >= g_conf.osd_recovery_max_active) { + if (recovery_ops_active >= g_conf->osd_recovery_max_active) { dout(15) << "_recover_now active " << recovery_ops_active - << " >= max " << g_conf.osd_recovery_max_active << dendl; + << " >= max " << g_conf->osd_recovery_max_active << dendl; return false; } if (g_clock.now() < defer_recovery_until) { @@ -4776,7 +4776,7 @@ void OSD::do_recovery(PG *pg) { // see how many we should try to start. note that this is a bit racy. recovery_wq.lock(); - int max = g_conf.osd_recovery_max_active - recovery_ops_active; + int max = g_conf->osd_recovery_max_active - recovery_ops_active; recovery_wq.unlock(); if (max == 0) { dout(10) << "do_recovery raced and failed to start anything; requeuing " << *pg << dendl; @@ -4786,7 +4786,7 @@ void OSD::do_recovery(PG *pg) pg->lock(); dout(10) << "do_recovery starting " << max - << " (" << recovery_ops_active << "/" << g_conf.osd_recovery_max_active << " rops) on " + << " (" << recovery_ops_active << "/" << g_conf->osd_recovery_max_active << " rops) on " << *pg << dendl; #ifdef DEBUG_RECOVERY_OIDS dout(20) << " active was " << recovery_oids[pg->info.pgid] << dendl; @@ -4795,7 +4795,7 @@ void OSD::do_recovery(PG *pg) int started = pg->start_recovery_ops(max); dout(10) << "do_recovery started " << started - << " (" << recovery_ops_active << "/" << g_conf.osd_recovery_max_active << " rops) on " + << " (" << recovery_ops_active << "/" << g_conf->osd_recovery_max_active << " rops) on " << *pg << dendl; /* @@ -4832,7 +4832,7 @@ void OSD::start_recovery_op(PG *pg, const sobject_t& soid) { recovery_wq.lock(); dout(10) << "start_recovery_op " << *pg << " " << soid - << " (" << recovery_ops_active << "/" << g_conf.osd_recovery_max_active << " rops)" + << " (" << recovery_ops_active << "/" << g_conf->osd_recovery_max_active << " rops)" << dendl; assert(recovery_ops_active >= 0); recovery_ops_active++; @@ -4850,7 +4850,7 @@ void OSD::finish_recovery_op(PG *pg, const sobject_t& soid, bool dequeue) { dout(10) << "finish_recovery_op " << *pg << " " << soid << " dequeue=" << dequeue - << " (" << recovery_ops_active << "/" << g_conf.osd_recovery_max_active << " rops)" + << " (" << recovery_ops_active << "/" << g_conf->osd_recovery_max_active << " rops)" << dendl; recovery_wq.lock(); @@ -5073,8 +5073,8 @@ void OSD::handle_op(MOSDOp *op) return; } - if (g_conf.osd_max_write_size && - op->get_data_len() > g_conf.osd_max_write_size << 20) { + if (g_conf->osd_max_write_size && + op->get_data_len() > g_conf->osd_max_write_size << 20) { // journal can't hold commit! reply_op_error(op, -OSD_WRITETOOBIG); pg->unlock(); @@ -5115,7 +5115,7 @@ void OSD::handle_op(MOSDOp *op) } pg->get(); - if (g_conf.osd_op_threads < 1) { + if (g_conf->osd_op_threads < 1) { // do it now. if (op->get_type() == CEPH_MSG_OSD_OP) pg->do_op((MOSDOp*)op); @@ -5180,7 +5180,7 @@ void OSD::handle_sub_op(MOSDSubOp *op) return; } - if (g_conf.osd_op_threads < 1) { + if (g_conf->osd_op_threads < 1) { pg->do_sub_op(op); // do it now } else { enqueue_op(pg, op); // queue for worker threads @@ -5217,7 +5217,7 @@ void OSD::handle_sub_op_reply(MOSDSubOpReply *op) } PG *pg = _lookup_lock_pg(pgid); - if (g_conf.osd_op_threads < 1) { + if (g_conf->osd_op_threads < 1) { pg->do_sub_op_reply(op); // do it now } else { enqueue_op(pg, op); // queue for worker threads @@ -5291,7 +5291,7 @@ void OSD::dequeue_op(PG *pg) dout(10) << "dequeue_op " << op << " finish" << dendl; assert(pending_ops > 0); - if (pending_ops > g_conf.osd_max_opq) + if (pending_ops > g_conf->osd_max_opq) op_queue_cond.Signal(); pending_ops--; @@ -5308,9 +5308,9 @@ void OSD::dequeue_op(PG *pg) void OSD::throttle_op_queue() { // throttle? FIXME PROBABLY! - while (pending_ops > g_conf.osd_max_opq) { + while (pending_ops > g_conf->osd_max_opq) { dout(10) << "enqueue_op waiting for pending_ops " << pending_ops - << " to drop to " << g_conf.osd_max_opq << dendl; + << " to drop to " << g_conf->osd_max_opq << dendl; op_queue_cond.Wait(osd_lock); } } diff --git a/src/osd/OSD.h b/src/osd/OSD.h index f1cc10f93c83f..7576f2c2b0a38 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -369,7 +369,7 @@ private: bool is_flash_crowd_candidate(const object_t& oid) const { Mutex::Locker locker(lock); - return get_average_iat(oid) <= g_conf.osd_flash_crowd_iat_threshold; + return get_average_iat(oid) <= g_conf->osd_flash_crowd_iat_threshold; } }; @@ -735,9 +735,9 @@ protected: pg->get(); osd->recovery_queue.push_back(&pg->recovery_item); - if (g_conf.osd_recovery_delay_start > 0) { + if (g_conf->osd_recovery_delay_start > 0) { osd->defer_recovery_until = g_clock.now(); - osd->defer_recovery_until += g_conf.osd_recovery_delay_start; + osd->defer_recovery_until += g_conf->osd_recovery_delay_start; } return true; } diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 3f433bf248ab6..0a68877e05e81 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -201,7 +201,7 @@ void OSDMap::build_simple(epoch_t e, ceph_fsid_t &fsid, for (map::iterator p = rulesets.begin(); p != rulesets.end(); p++) { int pool = ++pool_max; pools[pool].v.type = CEPH_PG_TYPE_REP; - pools[pool].v.size = g_conf.osd_pool_default_size; + pools[pool].v.size = g_conf->osd_pool_default_size; pools[pool].v.crush_ruleset = p->first; pools[pool].v.object_hash = CEPH_STR_HASH_RJENKINS; pools[pool].v.pg_num = nosd << pg_bits; @@ -230,11 +230,11 @@ void OSDMap::build_simple_crush_map(CrushWrapper& crush, map& crush.set_type_name(1, "domain"); crush.set_type_name(2, "pool"); - int minrep = g_conf.osd_min_rep; - int maxrep = g_conf.osd_max_rep; + int minrep = g_conf->osd_min_rep; + int maxrep = g_conf->osd_max_rep; assert(maxrep >= minrep); if (!ndom) - ndom = MAX(maxrep, g_conf.osd_max_raid_width); + ndom = MAX(maxrep, g_conf->osd_max_raid_width); if (ndom > 1 && nosd >= ndom*3 && nosd > 8) { @@ -301,7 +301,7 @@ void OSDMap::build_simple_crush_map(CrushWrapper& crush, map& // replication for (map::iterator p = rulesets.begin(); p != rulesets.end(); p++) { int ruleset = p->first; - crush_rule *rule = crush_make_rule(3, ruleset, CEPH_PG_TYPE_REP, g_conf.osd_min_rep, maxrep); + crush_rule *rule = crush_make_rule(3, ruleset, CEPH_PG_TYPE_REP, g_conf->osd_min_rep, maxrep); crush_rule_set_step(rule, 0, CRUSH_RULE_TAKE, rootid, 0); crush_rule_set_step(rule, 1, CRUSH_RULE_CHOOSE_FIRSTN, CRUSH_CHOOSE_N, 0); crush_rule_set_step(rule, 2, CRUSH_RULE_EMIT, 0, 0); diff --git a/src/osd/OSDMap.h b/src/osd/OSDMap.h index 55d89d2def7eb..8fff588a7b830 100644 --- a/src/osd/OSDMap.h +++ b/src/osd/OSDMap.h @@ -822,7 +822,7 @@ private: ps_t pps = pool.raw_pg_to_pps(pg); // placement ps unsigned size = pool.get_size(); - assert(g_conf.osd_pg_layout == CEPH_PG_LAYOUT_CRUSH); + assert(g_conf->osd_pg_layout == CEPH_PG_LAYOUT_CRUSH); { int preferred = pg.preferred(); if (preferred >= max_osd || preferred >= crush.get_max_devices()) @@ -836,7 +836,7 @@ private: // no crush, but forcefeeding? if (pg.preferred() >= 0 && - g_conf.osd_pg_layout != CEPH_PG_LAYOUT_CRUSH) { + g_conf->osd_pg_layout != CEPH_PG_LAYOUT_CRUSH) { int osd = pg.preferred(); // already in there? diff --git a/src/osd/PG.cc b/src/osd/PG.cc index fc0f1421ad621..0e25ee23f9067 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1480,8 +1480,8 @@ void PG::activate(ObjectStore::Transaction& t, list& tfin, // -- crash recovery? if (is_crashed()) { replay_until = g_clock.now(); - replay_until += g_conf.osd_replay_window; - dout(10) << "crashed, allowing op replay for " << g_conf.osd_replay_window + replay_until += g_conf->osd_replay_window; + dout(10) << "crashed, allowing op replay for " << g_conf->osd_replay_window << " until " << replay_until << dendl; state_set(PG_STATE_REPLAY); osd->replay_queue_lock.Lock(); @@ -2097,7 +2097,7 @@ void PG::trim_ondisklog_to(ObjectStore::Transaction& t, eversion_t v) ::encode(ondisklog, blb); t.collection_setattr(coll, "ondisklog", blb); - if (!g_conf.osd_preserve_trimmed_log) + if (!g_conf->osd_preserve_trimmed_log) t.zero(coll_t::META_COLL, log_oid, 0, ondisklog.tail & ~4095); } @@ -2565,7 +2565,7 @@ bool PG::sched_scrub() } // just scrubbed? - if (info.history.last_scrub_stamp + g_conf.osd_scrub_min_interval > g_clock.now()) { + if (info.history.last_scrub_stamp + g_conf->osd_scrub_min_interval > g_clock.now()) { dout(20) << "sched_scrub: just scrubbed, skipping" << dendl; return true; } @@ -4116,13 +4116,13 @@ PG::RecoveryState::Active::react(const ActMap&) { assert(pg->is_primary()); pg->check_recovery_op_pulls(pg->osd->osdmap); - if (g_conf.osd_check_for_log_corruption) + if (g_conf->osd_check_for_log_corruption) pg->check_log_for_corruption(pg->osd->store); int unfound = pg->missing.num_missing() - pg->missing_loc.size(); if (unfound > 0 && pg->all_unfound_are_lost(pg->osd->osdmap)) { - if (g_conf.osd_auto_mark_unfound_lost) { + if (g_conf->osd_auto_mark_unfound_lost) { pg->osd->clog.error() << pg->info.pgid << " has " << unfound << " objects unfound and apparently lost, automatically marking lost\n"; pg->mark_all_unfound_as_lost(*context< RecoveryMachine >().get_cur_transaction()); diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index ac071bd7b9f9b..5b4e878a16842 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -616,7 +616,7 @@ void ReplicatedPG::log_op_stats(OpContext *ctx) /* if (is_primary() && - g_conf.osd_balance_reads) + g_conf->osd_balance_reads) stat_object_temp_rd[soid].hit(now, osd->decayrate); // hit temp. */ } else { @@ -1342,8 +1342,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& ops, } catch (const buffer::error &e) { timeout = 0; } - if (!timeout || timeout > (uint32_t)g_conf.osd_max_notify_timeout) - timeout = g_conf.osd_max_notify_timeout; + if (!timeout || timeout > (uint32_t)g_conf->osd_max_notify_timeout) + timeout = g_conf->osd_max_notify_timeout; notify_info_t n; n.timeout = timeout; @@ -3428,7 +3428,7 @@ int ReplicatedPG::pull(const sobject_t& soid) // only pull so much at a time interval_set pullsub; - pullsub.span_of(data_subset, 0, g_conf.osd_recovery_max_chunk); + pullsub.span_of(data_subset, 0, g_conf->osd_recovery_max_chunk); // take note assert(pulling.count(soid) == 0); @@ -3563,7 +3563,7 @@ void ReplicatedPG::push_start(const sobject_t& soid, int peer, pi->data_subset = data_subset; pi->clone_subsets = clone_subsets; - pi->data_subset_pushing.span_of(pi->data_subset, 0, g_conf.osd_recovery_max_chunk); + pi->data_subset_pushing.span_of(pi->data_subset, 0, g_conf->osd_recovery_max_chunk); bool complete = pi->data_subset_pushing == pi->data_subset; dout(10) << "push_start " << soid << " size " << size << " data " << data_subset @@ -3681,7 +3681,7 @@ void ReplicatedPG::sub_op_push_reply(MOSDSubOpReply *reply) if (!complete) { // push more uint64_t from = pi->data_subset_pushing.range_end(); - pi->data_subset_pushing.span_of(pi->data_subset, from, g_conf.osd_recovery_max_chunk); + pi->data_subset_pushing.span_of(pi->data_subset, from, g_conf->osd_recovery_max_chunk); dout(10) << " pushing more, " << pi->data_subset_pushing << " of " << pi->data_subset << dendl; complete = pi->data_subset.range_end() == pi->data_subset_pushing.range_end(); send_push_op(soid, pi->version, peer, pi->size, false, complete, @@ -4081,7 +4081,7 @@ void ReplicatedPG::sub_op_push(MOSDSubOp *op) update_stats(); } else { // pull more - pi->data_subset_pulling.span_of(pi->data_subset, data_subset.range_end(), g_conf.osd_recovery_max_chunk); + pi->data_subset_pulling.span_of(pi->data_subset, data_subset.range_end(), g_conf->osd_recovery_max_chunk); dout(10) << " pulling more, " << pi->data_subset_pulling << " of " << pi->data_subset << dendl; send_pull_op(soid, v, false, pi->data_subset_pulling, pi->from); } diff --git a/src/osdc/Journaler.cc b/src/osdc/Journaler.cc index 872ba87298eb1..a7b8cd13deb0e 100644 --- a/src/osdc/Journaler.cc +++ b/src/osdc/Journaler.cc @@ -60,7 +60,7 @@ void Journaler::set_layout(ceph_file_layout *l) // prefetch intelligently. // (watch out, this is big if you use big objects or weird striping) - uint64_t periods = g_conf.journaler_prefetch_periods; + uint64_t periods = g_conf->journaler_prefetch_periods; if (periods < 2) periods = 2; // we need at least 2 periods to make progress. fetch_len = layout.fl_stripe_count * layout.fl_object_size * periods; @@ -419,7 +419,7 @@ uint64_t Journaler::append_entry(bufferlist& bl) assert(!readonly); uint32_t s = bl.length(); - if (!g_conf.journaler_allow_split_entries) { + if (!g_conf->journaler_allow_split_entries) { // will we span a stripe boundary? int p = layout.fl_stripe_unit; if (write_pos / p != (write_pos + (int64_t)(bl.length() + sizeof(s))) / p) { @@ -567,13 +567,13 @@ void Journaler::flush(Context *onsafe) } else { if (1) { // maybe buffer - if (write_buf.length() < g_conf.journaler_batch_max) { + if (write_buf.length() < g_conf->journaler_batch_max) { // delay! schedule an event. dout(20) << "flush delaying flush" << dendl; if (delay_flush_event) timer->cancel_event(delay_flush_event); delay_flush_event = new C_DelayFlush(this); - timer->add_event_after(g_conf.journaler_batch_interval, delay_flush_event); + timer->add_event_after(g_conf->journaler_batch_interval, delay_flush_event); } else { dout(20) << "flush not delaying flush" << dendl; _do_flush(); @@ -586,7 +586,7 @@ void Journaler::flush(Context *onsafe) } // write head? - if (last_wrote_head.sec() + g_conf.journaler_write_head_interval < g_clock.now().sec()) { + if (last_wrote_head.sec() + g_conf->journaler_write_head_interval < g_clock.now().sec()) { write_head(); } } @@ -609,7 +609,7 @@ void Journaler::_issue_prezero() // we need to zero at least two periods, minimum, to ensure that we have a full // empty object/period in front of us. - uint64_t num_periods = MAX(2, g_conf.journaler_prezero_periods); + uint64_t num_periods = MAX(2, g_conf->journaler_prezero_periods); /* * issue zero requests based on write_pos, even though the invariant diff --git a/src/osdc/ObjectCacher.cc b/src/osdc/ObjectCacher.cc index 68c9e9ddc8298..e64d85d7c0658 100644 --- a/src/osdc/ObjectCacher.cc +++ b/src/osdc/ObjectCacher.cc @@ -737,7 +737,7 @@ void ObjectCacher::bh_write_commit(int poolid, sobject_t oid, loff_t start, uint void ObjectCacher::flush(loff_t amount) { utime_t cutoff = g_clock.now(); - //cutoff.sec_ref() -= g_conf.client_oc_max_dirty_age; + //cutoff.sec_ref() -= g_conf->client_oc_max_dirty_age; dout(10) << "flush " << amount << dendl; @@ -761,7 +761,7 @@ void ObjectCacher::flush(loff_t amount) void ObjectCacher::trim(loff_t max) { if (max < 0) - max = g_conf.client_oc_size; + max = g_conf->client_oc_size; dout(10) << "trim start: max " << max << " clean " << get_stat_clean() @@ -1023,10 +1023,10 @@ bool ObjectCacher::wait_for_write(uint64_t len, Mutex& lock) int blocked = 0; // wait for writeback? - while (get_stat_dirty() + get_stat_tx() >= g_conf.client_oc_max_dirty) { + while (get_stat_dirty() + get_stat_tx() >= g_conf->client_oc_max_dirty) { dout(10) << "wait_for_write waiting on " << len << ", dirty|tx " << (get_stat_dirty() + get_stat_tx()) - << " >= " << g_conf.client_oc_max_dirty + << " >= " << g_conf->client_oc_max_dirty << dendl; flusher_cond.Signal(); stat_waiter++; @@ -1037,9 +1037,9 @@ bool ObjectCacher::wait_for_write(uint64_t len, Mutex& lock) } // start writeback anyway? - if (get_stat_dirty() > g_conf.client_oc_target_dirty) { + if (get_stat_dirty() > g_conf->client_oc_target_dirty) { dout(10) << "wait_for_write " << get_stat_dirty() << " > target " - << g_conf.client_oc_target_dirty << ", nudging flusher" << dendl; + << g_conf->client_oc_target_dirty << ", nudging flusher" << dendl; flusher_cond.Signal(); } return blocked; @@ -1053,21 +1053,21 @@ void ObjectCacher::flusher_entry() while (!flusher_stop) { loff_t all = get_stat_tx() + get_stat_rx() + get_stat_clean() + get_stat_dirty(); dout(11) << "flusher " - << all << " / " << g_conf.client_oc_size << ": " + << all << " / " << g_conf->client_oc_size << ": " << get_stat_tx() << " tx, " << get_stat_rx() << " rx, " << get_stat_clean() << " clean, " << get_stat_dirty() << " dirty (" - << g_conf.client_oc_target_dirty << " target, " - << g_conf.client_oc_max_dirty << " max)" + << g_conf->client_oc_target_dirty << " target, " + << g_conf->client_oc_max_dirty << " max)" << dendl; - if (get_stat_dirty() > g_conf.client_oc_target_dirty) { + if (get_stat_dirty() > g_conf->client_oc_target_dirty) { // flush some dirty pages dout(10) << "flusher " << get_stat_dirty() << " dirty > target " - << g_conf.client_oc_target_dirty + << g_conf->client_oc_target_dirty << ", flushing some dirty bhs" << dendl; - flush(get_stat_dirty() - g_conf.client_oc_target_dirty); + flush(get_stat_dirty() - g_conf->client_oc_target_dirty); } else { // check tail of lru for old dirty items @@ -1165,7 +1165,7 @@ int ObjectCacher::atomic_sync_writex(OSDWrite *wr, ObjectSet *oset, Mutex& lock) << dendl; if (wr->extents.size() == 1 && - wr->extents.front().length <= g_conf.client_oc_max_sync_write) { + wr->extents.front().length <= g_conf->client_oc_max_sync_write) { // single object. // make sure we aren't already locking/locked... diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index b8bfccf9d8765..cc785d221ec28 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -50,7 +50,7 @@ void Objecter::init() { assert(client_lock.is_locked()); - timer.add_event_after(g_conf.objecter_tick_interval, new C_Tick(this)); + timer.add_event_after(g_conf->objecter_tick_interval, new C_Tick(this)); maybe_request_map(); } @@ -410,7 +410,7 @@ void Objecter::tick() // look for laggy requests utime_t cutoff = g_clock.now(); - cutoff -= g_conf.objecter_timeout; // timeout + cutoff -= g_conf->objecter_timeout; // timeout for (hash_map::iterator p = ops.begin(); p != ops.end(); @@ -435,13 +435,13 @@ void Objecter::tick() } // reschedule - timer.add_event_after(g_conf.objecter_tick_interval, new C_Tick(this)); + timer.add_event_after(g_conf->objecter_tick_interval, new C_Tick(this)); } void Objecter::resend_mon_ops() { utime_t cutoff = g_clock.now(); - cutoff -= g_conf.objecter_mon_retry_interval; + cutoff -= g_conf->objecter_mon_retry_interval; for (map::iterator p = poolstat_ops.begin(); p!=poolstat_ops.end(); ++p) { diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index 3044c01c93ca3..c108efa6c45b0 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -574,7 +574,7 @@ public: last_seen_pgmap_version(0), client_lock(l), timer(t), num_homeless_ops(0), - op_throttler(g_conf.objecter_inflight_op_bytes) + op_throttler(g_conf->objecter_inflight_op_bytes) { } ~Objecter() { } diff --git a/src/osdmaptool.cc b/src/osdmaptool.cc index bf77ab593bed5..fb6e7f25b51e4 100644 --- a/src/osdmaptool.cc +++ b/src/osdmaptool.cc @@ -60,9 +60,9 @@ int main(int argc, const char **argv) bool tree = false; bool createsimple = false; int num_osd = 0, num_dom = 0; - int pg_bits = g_conf.osd_pg_bits; - int pgp_bits = g_conf.osd_pgp_bits; - int lpg_bits = g_conf.osd_lpg_bits; + int pg_bits = g_conf->osd_pg_bits; + int pgp_bits = g_conf->osd_pgp_bits; + int lpg_bits = g_conf->osd_lpg_bits; bool clobber = false; bool modified = false; const char *export_crush = 0; diff --git a/src/perfglue/heap_profiler.cc b/src/perfglue/heap_profiler.cc index 0a73d9cb612a3..48f4c5c2a636a 100644 --- a/src/perfglue/heap_profiler.cc +++ b/src/perfglue/heap_profiler.cc @@ -51,7 +51,7 @@ void ceph_heap_profiler_start() { char profile_name[PATH_MAX]; snprintf(profile_name, sizeof(profile_name), - "%s/%s", g_conf.log_dir.c_str(), g_conf.name.to_cstr()); + "%s/%s", g_conf->log_dir.c_str(), g_conf->name.to_cstr()); generic_dout(0) << "turning on heap profiler with prefix " << profile_name << dendl; HeapProfilerStart(profile_name); @@ -76,24 +76,24 @@ void ceph_heap_profiler_handle_command(const std::vector& cmd, else { char *heap_stats = new char[1024]; ceph_heap_profiler_stats(heap_stats, 1024); - clog.info() << g_conf.name << "dumping heap profile now.\n" + clog.info() << g_conf->name << "dumping heap profile now.\n" << heap_stats << std::endl; ceph_heap_profiler_dump("admin request"); } } else if (cmd.size() == 2 && cmd[1] == "start_profiler") { ceph_heap_profiler_start(); - clog.info() << g_conf.name << " started profiler \n"; + clog.info() << g_conf->name << " started profiler \n"; } else if (cmd.size() == 2 && cmd[1] == "stop_profiler") { ceph_heap_profiler_stop(); - clog.info() << g_conf.name << " stopped profiler\n"; + clog.info() << g_conf->name << " stopped profiler\n"; } else if (cmd.size() == 2 && cmd[1] == "release") { ceph_heap_release_free_memory(); - clog.info() << g_conf.name << " releasing free RAM back " + clog.info() << g_conf->name << " releasing free RAM back " << "to system.\n"; } else if (cmd.size() == 2 && cmd[1] == "stats") { char *heap_stats = new char[1024]; ceph_heap_profiler_stats(heap_stats, 1024); - clog.info() << g_conf.name << "tcmalloc heap stats:" + clog.info() << g_conf->name << "tcmalloc heap stats:" << heap_stats << std::endl; } else { clog.warn() << "unknown command " << cmd << std::endl; diff --git a/src/rgw/librgw.cc b/src/rgw/librgw.cc index e0f07776cbf59..fc5db60819220 100644 --- a/src/rgw/librgw.cc +++ b/src/rgw/librgw.cc @@ -24,7 +24,7 @@ #include #include -#define RGW_LOG(x) pdout(x, g_conf.rgw_log) +#define RGW_LOG(x) pdout(x, g_conf->rgw_log) static Mutex librgw_init_mutex("librgw_init"); static int librgw_initialized = 0; diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index d8b049b30df55..c525616f3ee22 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -48,7 +48,7 @@ extern string rgw_root_bucket; #define RGW_MAX_CHUNK_SIZE (4*1024*1024) #define RGW_LOG_BEGIN "RADOS S3 Gateway:" -#define RGW_LOG(x) pdout(x, g_conf.rgw_log) +#define RGW_LOG(x) pdout(x, g_conf->rgw_log) #define RGW_FORMAT_XML 1 #define RGW_FORMAT_JSON 2 diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 4dee2cadaaef4..38617c6c3ae03 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -95,7 +95,7 @@ static int get_policy_from_attr(RGWAccessControlPolicy *policy, string& bucket, if (ret >= 0) { bufferlist::iterator iter = bl.begin(); policy->decode(iter); - if (g_conf.rgw_log >= 15) { + if (g_conf->rgw_log >= 15) { RGW_LOG(15) << "Read AccessControlPolicy" << dendl; policy->to_xml(cerr); RGW_LOG(15) << dendl; @@ -746,7 +746,7 @@ void RGWPutACLs::execute() goto done; } - if (g_conf.rgw_log >= 15) { + if (g_conf->rgw_log >= 15) { RGW_LOG(15) << "Old AccessControlPolicy" << dendl; policy->to_xml(cout); RGW_LOG(15) << dendl; @@ -756,7 +756,7 @@ void RGWPutACLs::execute() if (ret < 0) goto done; - if (g_conf.rgw_log >= 15) { + if (g_conf->rgw_log >= 15) { RGW_LOG(15) << "New AccessControlPolicy" << dendl; new_policy.to_xml(cout); RGW_LOG(15) << dendl; @@ -782,14 +782,14 @@ void RGWHandler::init_state(struct req_state *s, struct fcgx_state *fcgx) if (cgi_env_level != NULL) { int level = atoi(cgi_env_level); if (level >= 0) { - g_conf.rgw_log = level; + g_conf->rgw_log = level; } } const char *cgi_should_log = FCGX_GetParam("RGW_SHOULD_LOG", fcgx->envp); s->should_log = rgw_str_to_bool(cgi_should_log, RGW_SHOULD_LOG_DEFAULT); - if (g_conf.rgw_log >= 20) { + if (g_conf->rgw_log >= 20) { char *p; for (int i=0; (p = fcgx->envp[i]); ++i) { RGW_LOG(20) << p << dendl; diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 56bdd6d319472..71adf7f71e50b 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -582,7 +582,7 @@ int RGWRados::prepare_get_obj(std::string& bucket, std::string& oid, if (attrs) { r = state->io_ctx.getxattrs(oid, *attrs); - if (g_conf.rgw_log >= 20) { + if (g_conf->rgw_log >= 20) { for (iter = attrs->begin(); iter != attrs->end(); ++iter) { RGW_LOG(20) << "Read xattr: " << iter->first << dendl; } diff --git a/src/test/TestDoutStreambuf.cc b/src/test/TestDoutStreambuf.cc index 2b8608e35885b..bbad110adf773 100644 --- a/src/test/TestDoutStreambuf.cc +++ b/src/test/TestDoutStreambuf.cc @@ -48,7 +48,7 @@ int main(int argc, const char **argv) changed.insert(*t); } DoutLocker _dout_locker; - dos->handle_conf_change(&g_conf, changed); + dos->handle_conf_change(g_conf, changed); } derr << "using configuration: " << dos->config_to_str() << dendl; diff --git a/src/testmsgr.cc b/src/testmsgr.cc index 1a274e6a68bc8..0f9cf37a06886 100644 --- a/src/testmsgr.cc +++ b/src/testmsgr.cc @@ -85,7 +85,7 @@ int main(int argc, const char **argv, const char *envp[]) { // start up network int whoami = mc.monmap.get_rank(args[0]); assert(whoami >= 0); - g_conf.public_addr = mc.monmap.get_addr(whoami); + g_conf->public_addr = mc.monmap.get_addr(whoami); SimpleMessenger *rank = new SimpleMessenger(); int err = rank->bind(getpid()); if (err < 0) diff --git a/src/tools/common.cc b/src/tools/common.cc index dda210977242e..3319e696c0adc 100644 --- a/src/tools/common.cc +++ b/src/tools/common.cc @@ -238,7 +238,7 @@ void send_observe_requests() } registered.clear(); - float seconds = g_conf.paxos_observer_timeout/2; + float seconds = g_conf->paxos_observer_timeout/2; dout(1) << " refresh after " << seconds << " with same mon" << dendl; g.timer.add_event_after(seconds, new C_ObserverRefresh(false)); } @@ -534,7 +534,7 @@ int ceph_tool_common_init(ceph_tool_mode_t mode) g.mc.init(); if (g.mc.authenticate() < 0) { - derr << "unable to authenticate as " << g_conf.name << dendl; + derr << "unable to authenticate as " << g_conf->name << dendl; ceph_tool_messenger_shutdown(); ceph_tool_common_shutdown(); return 1;