From: Karel Zak Date: Wed, 3 Jun 2015 10:05:09 +0000 (+0200) Subject: losetup: print more usable error message on failed -f X-Git-Tag: v2.27-rc1~177 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=362f5d203581e895005b91383ea7b1affafd8eba;p=thirdparty%2Futil-linux.git losetup: print more usable error message on failed -f Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1215370 Signed-off-by: Karel Zak --- diff --git a/sys-utils/losetup.c b/sys-utils/losetup.c index c2bbd0d148..9201782ad6 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: