]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
config: use daemon() call; rename use_abspath to chdir_root
authorSage Weil <sage@newdream.net>
Sat, 28 Feb 2009 23:48:09 +0000 (15:48 -0800)
committerSage Weil <sage@newdream.net>
Sat, 28 Feb 2009 23:48:09 +0000 (15:48 -0800)
src/cfuse.cc
src/common/Logger.cc
src/config.cc
src/config.h
src/mon/MonitorStore.cc
src/msg/SimpleMessenger.cc

index 600f050537c32f62d752bd7850a04e9477c5ad7f..d510f9069434e4f5a09dff95549503ec676f3164 100644 (file)
@@ -50,7 +50,7 @@ int main(int argc, const char **argv, const char *envp[]) {
   vec_to_argv(args, argc, argv);
 
   // FUSE will chdir("/"); be ready.
-  g_conf.use_abspaths = true;
+  g_conf.chdir_root = true;
 
   if (g_conf.clock_tare) g_clock.tare();
 
index 9b091d22dbb48b01e1e2d1d4eee10fa5e256af9c..488573d7887f1e1fdef84e6cae411c9d3e140802 100644 (file)
@@ -115,7 +115,7 @@ void Logger::_open_log()
     return;
 
   filename = "";
-  if (g_conf.use_abspaths && g_conf.logger_dir[0] != '/') {
+  if (g_conf.chdir_root && g_conf.logger_dir[0] != '/') {
     char cwd[200];
     getcwd(cwd, 200);
     filename = cwd;
index 8006ade1a6022c92adf834e86f3e6d050b18e5c0..0faf8681e33faa7986f22e4f8e0029785955a533 100644 (file)
@@ -255,7 +255,7 @@ md_config_t g_conf = {
   debug_after: 0,
   
   // -- misc --
-  use_abspaths: false, // make monitorstore et al use absolute path (to workaround FUSE chdir("/"))
+  chdir_root: false,
 
   // --- clock ---
   clock_lock: false,
@@ -658,7 +658,7 @@ void parse_config_file(ConfFile *cf, bool auto_update)
   CF_READ("debug", "ms", debug_ms);
   CF_READ("debug", "mon", debug_mon);
   CF_READ("debug", "tp", debug_tp);
-  CF_READ("debug", "use abspaths", use_abspaths);
+  CF_READ("debug", "chdir root", chdir_root);
 
   CF_READ("clock", "lock", clock_lock);
   CF_READ("clock", "tare", clock_tare);
index afa2b7f02da3c490c974cb69acc8391e55f64b17..64cb1a47e56c763ce8941aa3e6b1d37710cb13ca 100644 (file)
@@ -107,7 +107,7 @@ struct md_config_t {
   int debug_after;
 
   // misc
-  bool use_abspaths;
+  bool chdir_root;
 
   // clock
   bool clock_lock;
index c3a0d25646851ac17820691f115f6c7ccf8ef347..d1155e172747e458948dac8a1933b43ed3d60ce5 100644 (file)
@@ -63,7 +63,7 @@ int MonitorStore::mount()
     return -errno;
   }
 
-  if (g_conf.use_abspaths && dir[0] != '/') {
+  if (g_conf.chdir_root && dir[0] != '/') {
     // combine it with the cwd, in case fuse screws things up (i.e. fakefuse)
     string old = dir;
     char cwd[200];
index 741ce79d1019a2692e2fdb798b1e1e112595c9aa..35674ec2a1d66007ca94551e3984a31ffaab561b 100644 (file)
@@ -394,15 +394,8 @@ int Rank::start(bool nodaemon)
     }
     dout(1) << "rank.start daemonizing" << dendl;
 
-    // be polite
-    if (g_conf.use_abspaths)
-      ::chdir("/");
-
-    pid_t child = fork();
-    if (child) {
-      write_pid_file(child);
-      _exit(0);
-    }
+    ::daemon(!g_conf.chdir_root, 0);
+    write_pid_file(getpid());
 
     _dout_rename_output_file();
   } else {