From af17e0d170a7dbdd2b9cefdcfa4e6c850152a5c0 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 30 Sep 2008 12:49:58 +0200 Subject: [PATCH] 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 --- mount/lomount.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/mount/lomount.c b/mount/lomount.c index 6ef143ab..57e240d1 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; } -- 2.39.5