Pass a char buffer parameter with name "errmsg" to nmount().
For filesystems which use vfs_mount_error() to log an error, this char buffer will be populated with a string error message. If nmount() fails, in addition to printing out strerror(errno), print out the "errmsg" populated by vfs_mount_error().
This commit is contained in:
parent
3a13c9cc28
commit
011b5486c5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=164977
@ -84,10 +84,12 @@ mount_fs(const char *vfstype, int argc, char *argv[])
|
|||||||
int ch;
|
int ch;
|
||||||
char *dev, *dir, mntpath[MAXPATHLEN];
|
char *dev, *dir, mntpath[MAXPATHLEN];
|
||||||
char fstype[32];
|
char fstype[32];
|
||||||
|
char errmsg[255];
|
||||||
char *p, *val;
|
char *p, *val;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
strncpy(fstype, vfstype, sizeof(fstype));
|
strncpy(fstype, vfstype, sizeof(fstype));
|
||||||
|
memset(errmsg, 0, sizeof(errmsg));
|
||||||
|
|
||||||
getmnt_silent = 1;
|
getmnt_silent = 1;
|
||||||
iov = NULL;
|
iov = NULL;
|
||||||
@ -126,10 +128,11 @@ mount_fs(const char *vfstype, int argc, char *argv[])
|
|||||||
build_iovec(&iov, &iovlen, "fstype", fstype, (size_t)-1);
|
build_iovec(&iov, &iovlen, "fstype", fstype, (size_t)-1);
|
||||||
build_iovec(&iov, &iovlen, "fspath", mntpath, (size_t)-1);
|
build_iovec(&iov, &iovlen, "fspath", mntpath, (size_t)-1);
|
||||||
build_iovec(&iov, &iovlen, "from", dev, (size_t)-1);
|
build_iovec(&iov, &iovlen, "from", dev, (size_t)-1);
|
||||||
|
build_iovec(&iov, &iovlen, "errmsg", errmsg, sizeof(errmsg));
|
||||||
|
|
||||||
ret = nmount(iov, iovlen, mntflags);
|
ret = nmount(iov, iovlen, mntflags);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
err(1, "%s", dev);
|
err(1, "%s %s", dev, errmsg);
|
||||||
|
|
||||||
return (ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user