*/
syserr = mnt_context_get_syscall_errno(cxt);
-
switch(syserr) {
case EPERM:
if (!buf)
return MNT_EX_SUCCESS;
if (buf)
snprintf(buf, bufsz, _("special device %s does not exist"), src);
- } else if (buf) {
- errno = syserr;
- snprintf(buf, bufsz, _("mount(2) system call failed: %m"));
- }
+ } else
+ goto generic_error;
break;
case ENOTDIR:
if (buf)
snprintf(buf, bufsz, _("special device %s does not exist "
"(a path prefix is not a directory)"), src);
- } else if (buf) {
- errno = syserr;
- snprintf(buf, bufsz, _("mount(2) system call failed: %m"));
- }
+ } else
+ goto generic_error;
break;
case EINVAL:
snprintf(buf, bufsz, _("cannot remount %s read-write, is write-protected"), src);
else if (mflags & MS_BIND)
snprintf(buf, bufsz, _("bind %s failed"), src);
- else {
- errno = syserr;
- snprintf(buf, bufsz, _("mount(2) system call failed: %m"));
- }
+ else
+ goto generic_error;
break;
case ENOMEDIUM:
/* fallthrough */
default:
+ generic_error:
if (buf) {
errno = syserr;
- snprintf(buf, bufsz, _("mount(2) system call failed: %m"));
+ snprintf(buf, bufsz, _("%s system call failed: %m"),
+ cxt->syscall_name ? : "mount");
}
break;
}