From 362f5d203581e895005b91383ea7b1affafd8eba Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 3 Jun 2015 12:05:09 +0200 Subject: losetup: print more usable error message on failed -f Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1215370 Signed-off-by: Karel Zak --- sys-utils/losetup.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'sys-utils/losetup.c') diff --git a/sys-utils/losetup.c b/sys-utils/losetup.c index c2bbd0d14..9201782ad 100644 --- a/sys-utils/losetup.c +++ b/sys-utils/losetup.c @@ -25,6 +25,7 @@ #include "optutils.h" #include "xalloc.h" #include "canonicalize.h" +#include "pathnames.h" enum { A_CREATE = 1, /* setup a new device */ @@ -697,9 +698,17 @@ int main(int argc, char **argv) break; case A_FIND_FREE: res = loopcxt_find_unused(&lc); - if (res) + if (res) { + int errsv = errno; + + if (access(_PATH_DEV_LOOPCTL, F_OK) == 0 && + access(_PATH_DEV_LOOPCTL, W_OK) != 0) + ; + else + errno = errsv; + warn(_("cannot find an unused loop device")); - else + } else printf("%s\n", loopcxt_get_device(&lc)); break; case A_SHOW: -- cgit v1.2.3-55-g7522