From 423d9efabb6aa679da2d670948f50dfd923ccb92 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20Wei=C3=9Fschuh?= Date: Sun, 25 Jun 2023 09:59:26 +0200 Subject: [PATCH] lib/loopdev: consistently return error values from loopcxt_find_unused() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Weißschuh --- lib/loopdev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/loopdev.c b/lib/loopdev.c index fc44ca550a..dd9ead3ee3 100644 --- a/lib/loopdev.c +++ b/lib/loopdev.c @@ -1602,6 +1602,8 @@ done: * kernels we have to check all loop devices to found unused one. * * See kernel commit 770fe30a46a12b6fb6b63fbe1737654d28e8484. + * + * Returns: 0 = success, < 0 error */ int loopcxt_find_unused(struct loopdev_cxt *lc) { @@ -1617,6 +1619,8 @@ int loopcxt_find_unused(struct loopdev_cxt *lc) ctl = open(_PATH_DEV_LOOPCTL, O_RDWR|O_CLOEXEC); if (ctl >= 0) rc = ioctl(ctl, LOOP_CTL_GET_FREE); + else + rc = -errno; if (rc >= 0) { char name[16]; snprintf(name, sizeof(name), "loop%d", rc); @@ -1638,6 +1642,8 @@ int loopcxt_find_unused(struct loopdev_cxt *lc) rc = loopcxt_next(lc); loopcxt_deinit_iterator(lc); DBG(CXT, ul_debugobj(lc, "find_unused by scan [rc=%d]", rc)); + if (rc) + return -ENOENT; } return rc; } -- 2.47.2