From: Karel Zak Date: Tue, 30 Sep 2008 10:49:58 +0000 (+0200) Subject: losetup: missing EBUSY error hint message X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa00d5788d9c0200c537f49ef3a22be9000b6ec2;p=util-linux losetup: missing EBUSY error hint message old version: # losetup /dev/loop0 /foo.img # losetup /dev/loop0 /bar.img; echo $? 2 new version: # losetup /dev/loop0 /foo.img # losetup /dev/loop0 /bar.img; echo $? losetup: /dev/loop0: device is busy 2 Signed-off-by: Karel Zak --- diff --git a/mount/lomount.c b/mount/lomount.c index c7fb12b7..d8ed55fa 100644 --- a/mount/lomount.c +++ b/mount/lomount.c @@ -633,6 +633,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) { @@ -1026,11 +1032,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; }