summaryrefslogtreecommitdiffstats
path: root/sys-utils/mountpoint.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys-utils/mountpoint.c')
-rw-r--r--sys-utils/mountpoint.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/sys-utils/mountpoint.c b/sys-utils/mountpoint.c
index 1182f7c3b..16c7c2271 100644
--- a/sys-utils/mountpoint.c
+++ b/sys-utils/mountpoint.c
@@ -116,7 +116,7 @@ static void __attribute__((__noreturn__)) usage(FILE *out)
int main(int argc, char **argv)
{
- int c, fs_devno = 0, dev_devno = 0, rc = 0;
+ int c, fs_devno = 0, dev_devno = 0, rc = EXIT_FAILURE;
char *spec;
struct stat st;
@@ -162,30 +162,36 @@ int main(int argc, char **argv)
if (stat(spec, &st)) {
if (!quiet)
- err(EXIT_FAILURE, "%s", spec);
- return EXIT_FAILURE;
+ warn("%s", spec);
+ goto finish;
}
- if (dev_devno)
- rc = print_devno(spec, &st);
- else {
+
+ if (dev_devno) {
+ if (print_devno(spec, &st) == 0)
+ rc = EXIT_SUCCESS;
+ } else {
dev_t src;
if (!S_ISDIR(st.st_mode)) {
if (!quiet)
- errx(EXIT_FAILURE, _("%s: not a directory"), spec);
- return EXIT_FAILURE;
+ warnx(_("%s: not a directory"), spec);
+ goto finish;
}
src = dir_to_device(spec);
if (!src) {
if (!quiet)
printf(_("%s is not a mountpoint\n"), spec);
- return EXIT_FAILURE;
+ goto finish;
}
+
+ rc = EXIT_SUCCESS;
+
if (fs_devno)
printf("%u:%u\n", major(src), minor(src));
else if (!quiet)
printf(_("%s is a mountpoint\n"), spec);
}
- return rc ? EXIT_FAILURE : EXIT_SUCCESS;
+finish:
+ return rc;
}