The text-based mount(2) system call API can return some additional errors
that we would like to report correctly to our users. These should be safe
to use with the legacy mount(2) ABI as well.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Neil Brown <neilb@suse.de>
fprintf(stderr, "%s\n", errbuf);
}
fprintf(stderr, "%s\n", errbuf);
}
* mount_error - report a foreground mount error
* @spec: C string containing the device name being mounted
* @mount_point: C string containing the pathname of the local mounted on dir
* mount_error - report a foreground mount error
* @spec: C string containing the device name being mounted
* @mount_point: C string containing the pathname of the local mounted on dir
void mount_error(const char *spec, const char *mount_point, int error)
{
switch(error) {
void mount_error(const char *spec, const char *mount_point, int error)
{
switch(error) {
+ case EACCES:
+ nfs_error(_("%s: access denied by server while mounting %s"),
+ progname, spec);
+ break;
+ case EINVAL:
+ nfs_error(_("%s: an incorrect mount option was specified"), progname);
+ break;
+ case EOPNOTSUPP:
+ nfs_error(_("%s: requested NFS version or transport"
+ " protocol is not supported"),
+ progname);
+ break;
case ENOTDIR:
nfs_error(_("%s: mount point %s is not a directory"),
progname, mount_point);
break;
case EBUSY:
case ENOTDIR:
nfs_error(_("%s: mount point %s is not a directory"),
progname, mount_point);
break;
case EBUSY:
- nfs_error(_("%s: %s is already mounted or busy"),
+ nfs_error(_("%s: %s is busy or already mounted"),
progname, mount_point);
break;
case ENOENT:
progname, mount_point);
break;
case ENOENT:
nfs_error(_("%s: mount point %s does not exist"),
progname, mount_point);
break;
nfs_error(_("%s: mount point %s does not exist"),
progname, mount_point);
break;
+ case EIO:
+ case EFAULT:
+ nfs_error(_("%s: internal error"), progname);
+ break;
default:
nfs_error(_("%s: %s"),
progname, strerror(error));
default:
nfs_error(_("%s: %s"),
progname, strerror(error));