]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-nbd: fix postfork_{start,finish} callers
authorSage Weil <sage@redhat.com>
Mon, 26 Feb 2018 22:04:20 +0000 (16:04 -0600)
committerSage Weil <sage@redhat.com>
Sun, 4 Mar 2018 21:31:55 +0000 (15:31 -0600)
_start is called right after the prefork().  _finish is called when we
do the logical daemonize() and say goodbye to the parent.

Fixes: http://tracker.ceph.com/issues/23143
Signed-off-by: Sage Weil <sage@redhat.com>
src/tools/rbd_nbd/rbd-nbd.cc

index 7a097261077dd8abc2f8f35bed850d517122736f..b3a99a09f3fa3c58b91690966f92186d8e222be3 100644 (file)
@@ -679,14 +679,13 @@ static int do_map(int argc, const char *argv[], Config *cfg)
       cerr << err << std::endl;
       return r;
     }
-
     if (forker.is_parent()) {
-      global_init_postfork_start(g_ceph_context);
       if (forker.parent_wait(err) != 0) {
         return -ENXIO;
       }
       return 0;
     }
+    global_init_postfork_start(g_ceph_context);
   }
 
   common_init_finish(g_ceph_context);
@@ -855,9 +854,8 @@ static int do_map(int argc, const char *argv[], Config *cfg)
     cout << cfg->devpath << std::endl;
 
     if (g_conf->daemonize) {
-      forker.daemonize();
-      global_init_postfork_start(g_ceph_context);
       global_init_postfork_finish(g_ceph_context);
+      forker.daemonize();
     }
 
     {