]> git.apps.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)
committerNathan Cutler <ncutler@suse.com>
Fri, 11 May 2018 20:04:14 +0000 (22:04 +0200)
_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>
(cherry picked from commit a350c8032af41452b8f9a200f86e7f0dc0db7345)

src/tools/rbd_nbd/rbd-nbd.cc

index 098d9925ca29c6806385bd4dc301199b0680ad80..3d76ece42a8a98d0a4afb7bff3e024f924b9b089 100644 (file)
@@ -595,14 +595,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);
@@ -761,9 +760,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();
     }
 
     {