diff options
Diffstat (limited to 'mount')
-rw-r--r-- | mount/lomount.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/mount/lomount.c b/mount/lomount.c index 6ef143ab6..57e240d11 100644 --- a/mount/lomount.c +++ b/mount/lomount.c @@ -645,6 +645,12 @@ digits_only(const char *s) { return 1; } +/* + * return codes: + * 0 - success + * 1 - error + * 2 - error (EBUSY) + */ int set_loop(const char *device, const char *file, unsigned long long offset, unsigned long long sizelimit, const char *encryption, int pfd, int *options) { @@ -1027,11 +1033,16 @@ main(int argc, char **argv) { } } while (find && res == 2); - if (verbose && res == 0) - printf("Loop device is %s\n", device); - - if (res == 0 && showdev && find) - printf("%s\n", device); + if (device) { + if (res == 2) + error(_("%s: %s: device is busy"), progname, device); + else if (res == 0) { + if (verbose) + printf("Loop device is %s\n", device); + if (showdev && find) + printf("%s\n", device); + } + } } return res; } |