diff options
author | Karel Zak | 2006-12-07 00:26:26 +0100 |
---|---|---|
committer | Karel Zak | 2006-12-07 00:26:26 +0100 |
commit | b22550fa1506e7cf4101bacc694842678908aaf2 (patch) | |
tree | f447dc9c312f7b75ea8a3c5df5d2a5bb6726160b /mount/lomount.c | |
parent | Imported from util-linux-2.12j tarball. (diff) | |
download | kernel-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.c | 10 |
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) { |