From: Mykola Golub Date: Wed, 13 Jan 2016 10:47:58 +0000 (+0200) Subject: rbd-nbd: correctly set exit status if map command failed X-Git-Tag: v10.0.3~59^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=299288cc29cca4f757348a2de9a2c1f3270d3dcb;p=ceph.git rbd-nbd: correctly set exit status if map command failed - parent_wait() returns child exit status so test for "!= 0"; - do_map() is expected to return a negative value on failure. Signed-off-by: Mykola Golub --- diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc index 04a935aa9723..41fcfc25e6b1 100644 --- a/src/tools/rbd_nbd/rbd-nbd.cc +++ b/src/tools/rbd_nbd/rbd-nbd.cc @@ -486,15 +486,15 @@ static int do_map() if (global_init_prefork(g_ceph_context) >= 0) { std::string err; - if (forker.prefork(err) < 0) { + r = forker.prefork(err); + if (r < 0) { cerr << err << std::endl; - return EXIT_FAILURE; + return r; } if (forker.is_parent()) { - if (forker.parent_wait(err) < 0) { - cerr << err << std::endl; - return EXIT_FAILURE; + if (forker.parent_wait(err) != 0) { + return -ENXIO; } return 0; }