From 890adc605b2a9231af964fe8d0063b031e250538 Mon Sep 17 00:00:00 2001 From: chenfangxian Date: Tue, 13 Jun 2017 11:05:51 +0800 Subject: [PATCH] rbd-nbd: fix nbd do_unmap error handling when nbd disconnect failed, ensure do_unmap return error logic. Signed-off-by: chenfangxian Signed-off-by: guojiannan --- src/tools/rbd_nbd/rbd-nbd.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc index b247c02546f2..102a5ce6c4fb 100644 --- a/src/tools/rbd_nbd/rbd-nbd.cc +++ b/src/tools/rbd_nbd/rbd-nbd.cc @@ -776,19 +776,22 @@ close_ret: static int do_unmap() { + int r = 0; + int nbd = open_device(devpath.c_str()); if (nbd < 0) { cerr << "rbd-nbd: failed to open device: " << devpath << std::endl; return nbd; } - if (ioctl(nbd, NBD_DISCONNECT) < 0) { - cerr << "rbd-nbd: the device is not used" << std::endl; + r = ioctl(nbd, NBD_DISCONNECT); + if (r < 0) { + cerr << "rbd-nbd: the device is not used" << std::endl; } close(nbd); - return 0; + return r; } static int parse_imgpath(const std::string &imgpath) -- 2.47.3