summaryrefslogtreecommitdiffstats
path: root/mount/lomount.c
diff options
context:
space:
mode:
authorKarel Zak2006-12-07 00:26:26 +0100
committerKarel Zak2006-12-07 00:26:26 +0100
commitb22550fa1506e7cf4101bacc694842678908aaf2 (patch)
treef447dc9c312f7b75ea8a3c5df5d2a5bb6726160b /mount/lomount.c
parentImported from util-linux-2.12j tarball. (diff)
downloadkernel-qcow2-util-linux-b22550fa1506e7cf4101bacc694842678908aaf2.tar.gz
kernel-qcow2-util-linux-b22550fa1506e7cf4101bacc694842678908aaf2.tar.xz
kernel-qcow2-util-linux-b22550fa1506e7cf4101bacc694842678908aaf2.zip
Imported from util-linux-2.12k tarball.
Diffstat (limited to 'mount/lomount.c')
-rw-r--r--mount/lomount.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/mount/lomount.c b/mount/lomount.c
index b7ac356e1..002f34204 100644
--- a/mount/lomount.c
+++ b/mount/lomount.c
@@ -148,7 +148,7 @@ find_unused_loop_device (void) {
So, we just try /dev/loop[0-7]. */
char dev[20];
char *loop_formats[] = { "/dev/loop%d", "/dev/loop/%d" };
- int i, j, fd, somedev = 0, someloop = 0;
+ int i, j, fd, somedev = 0, someloop = 0, permission = 0;
struct stat statbuf;
struct loop_info loopinfo;
@@ -166,7 +166,9 @@ find_unused_loop_device (void) {
return xstrdup(dev);/* probably free */
}
close (fd);
- }
+ } else if (errno == EACCES)
+ permission++;
+
continue;/* continue trying as long as devices exist */
}
break;
@@ -175,6 +177,8 @@ find_unused_loop_device (void) {
if (!somedev)
error(_("%s: could not find any device /dev/loop#"), progname);
+ else if (!someloop && permission)
+ error(_("%s: no permission to look at /dev/loop#"), progname);
else if (!someloop)
error(_(
"%s: Could not find any loop device. Maybe this kernel "
@@ -396,7 +400,7 @@ find_unused_loop_device (void) {
#include <stdarg.h>
int verbose = 0;
-static char *progname;
+char *progname;
static void
usage(void) {