From 5150fd006ff9bb7771149d3a9fffd3716a622ea5 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 26 Feb 2018 16:04:20 -0600 Subject: [PATCH] rbd-nbd: fix postfork_{start,finish} callers _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 (cherry picked from commit a350c8032af41452b8f9a200f86e7f0dc0db7345) --- src/tools/rbd_nbd/rbd-nbd.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc index 098d9925ca29c..3d76ece42a8a9 100644 --- a/src/tools/rbd_nbd/rbd-nbd.cc +++ b/src/tools/rbd_nbd/rbd-nbd.cc @@ -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(); } { -- 2.39.5