From: Karel Zak Date: Fri, 20 Jan 2012 13:17:08 +0000 (+0100) Subject: mount: (new) add source/target to error messages X-Git-Tag: v2.21-rc2~117 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2e86597f8392d0e8e66f26f26284c1a60c31495d;p=thirdparty%2Futil-linux.git mount: (new) add source/target to error messages Signed-off-by: Karel Zak --- diff --git a/sys-utils/mount.c b/sys-utils/mount.c index 9fd0a240f2..79b2916560 100644 --- a/sys-utils/mount.c +++ b/sys-utils/mount.c @@ -28,7 +28,7 @@ #include #include #include - +#include #include #include "nls.h" @@ -232,24 +232,30 @@ static int mount_all(struct libmnt_context *cxt) * * Returns exit status (EX_*) and prints error message. */ -static int handle_generic_errors(int rc, const char *msg) +static int handle_generic_errors(int rc, const char *msg, ...) { + va_list va; + + va_start(va, msg); errno = -rc; switch(errno) { case EINVAL: case EPERM: - warn(msg); - return EX_USAGE; + vwarn(msg, va); + rc = EX_USAGE; + break; case ENOMEM: - warn(msg); - return EX_SYSERR; + vwarn(msg, va); + rc = EX_SYSERR; + break; default: + vwarn(msg, va); + rc = EX_FAIL; break; } - - warn(msg); - return EX_FAIL; + va_end(va); + return rc; } #if defined(HAVE_LIBSELINUX) && defined(HAVE_SECURITY_GET_INITIAL_CONTEXT) @@ -300,7 +306,6 @@ static int mk_exit_code(struct libmnt_context *cxt, int rc) const char *src = mnt_context_get_source(cxt); try_readonly: - if (mnt_context_helper_executed(cxt)) /* * /sbin/mount. called, return status @@ -346,7 +351,8 @@ try_readonly: warnx(_("you must specify the filesystem type")); return EX_USAGE; } - return handle_generic_errors(rc, _("mount failed")); + return handle_generic_errors(rc, _("%s: mount failed"), + tgt ? tgt : src); } else if (mnt_context_get_syscall_errno(cxt) == 0) { /* @@ -355,7 +361,8 @@ try_readonly: */ if (rc < 0) return handle_generic_errors(rc, - _("filesystem mounted, but mount(8) failed")); + _("%s: filesystem mounted, but mount(8) failed"), + tgt ? tgt : src); return EX_SOFTWARE; /* internal error */