From: Thomas Weißschuh Date: Sun, 25 Jun 2023 07:59:26 +0000 (+0200) Subject: lib/loopdev: consistently return error values from loopcxt_find_unused() X-Git-Tag: v2.40-rc1~369^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3c5402640d547781faa2d5675ba6c3327ab1b926;p=thirdparty%2Futil-linux.git lib/loopdev: consistently return error values from loopcxt_find_unused() Signed-off-by: Thomas Weißschuh --- 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; }