summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/lib/libzfs/common/libzfs_dataset.c21
-rw-r--r--usr/src/lib/libzfs/common/libzfs_impl.h9
-rw-r--r--usr/src/lib/libzfs/common/libzfs_import.c4
-rw-r--r--usr/src/lib/libzfs/common/libzfs_mount.c20
-rw-r--r--usr/src/lib/libzfs/common/libzfs_pool.c23
-rw-r--r--usr/src/lib/libzfs/common/libzfs_util.c26
6 files changed, 63 insertions, 40 deletions
diff --git a/usr/src/lib/libzfs/common/libzfs_dataset.c b/usr/src/lib/libzfs/common/libzfs_dataset.c
index 5a33047b0f..e1335a4fcb 100644
--- a/usr/src/lib/libzfs/common/libzfs_dataset.c
+++ b/usr/src/lib/libzfs/common/libzfs_dataset.c
@@ -404,7 +404,7 @@ zfs_open(libzfs_handle_t *hdl, const char *path, int types)
*/
errno = 0;
if ((zhp = make_dataset_handle(hdl, path)) == NULL) {
- (void) zfs_standard_error(hdl, errno, errbuf, path);
+ (void) zfs_standard_error(hdl, errno, errbuf);
return (NULL);
}
@@ -1753,7 +1753,7 @@ zfs_prop_get_numeric(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t *value,
* Check to see if this property applies to our object
*/
if (!zfs_prop_valid_for_type(prop, zhp->zfs_type))
- return (zfs_error(zhp->zfs_hdl, EZFS_PROPTYPE,
+ return (zfs_error_fmt(zhp->zfs_hdl, EZFS_PROPTYPE,
dgettext(TEXT_DOMAIN, "cannot get property '%s'"),
zfs_prop_to_name(prop)));
@@ -2143,7 +2143,7 @@ zfs_destroy(zfs_handle_t *zhp)
}
if (ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_DESTROY, &zc) != 0) {
- return (zfs_standard_error(zhp->zfs_hdl, errno,
+ return (zfs_standard_error_fmt(zhp->zfs_hdl, errno,
dgettext(TEXT_DOMAIN, "cannot destroy '%s'"),
zhp->zfs_name));
}
@@ -2201,7 +2201,7 @@ zfs_destroy_snaps(zfs_handle_t *zhp, char *snapname)
(void) zfs_remove_link_cb(zhp, &dd);
if (!dd.gotone) {
- return (zfs_standard_error(zhp->zfs_hdl, ENOENT,
+ return (zfs_standard_error_fmt(zhp->zfs_hdl, ENOENT,
dgettext(TEXT_DOMAIN, "cannot destroy '%s@%s'"),
zhp->zfs_name, snapname));
}
@@ -2870,8 +2870,9 @@ zfs_receive(libzfs_handle_t *hdl, const char *tosnap, int isprefix,
}
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"destination already exists"));
- (void) zfs_error(hdl, EZFS_EXISTS, dgettext(TEXT_DOMAIN,
- "cannot restore to %s"), zc.zc_value);
+ (void) zfs_error_fmt(hdl, EZFS_EXISTS,
+ dgettext(TEXT_DOMAIN, "cannot restore to %s"),
+ zc.zc_value);
break;
case EINVAL:
(void) zfs_error(hdl, EZFS_BADSTREAM, errbuf);
@@ -3018,7 +3019,7 @@ do_rollback(zfs_handle_t *zhp)
*/
if ((ret = ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_ROLLBACK,
&zc)) != 0) {
- (void) zfs_standard_error(zhp->zfs_hdl, errno,
+ (void) zfs_standard_error_fmt(zhp->zfs_hdl, errno,
dgettext(TEXT_DOMAIN, "cannot rollback '%s'"),
zhp->zfs_name);
} else if (zhp->zfs_type == ZFS_TYPE_VOLUME) {
@@ -3287,7 +3288,7 @@ zvol_create_link(libzfs_handle_t *hdl, const char *dataset)
return (0);
default:
- return (zfs_standard_error(hdl, errno,
+ return (zfs_standard_error_fmt(hdl, errno,
dgettext(TEXT_DOMAIN, "cannot create device links "
"for '%s'"), dataset));
}
@@ -3298,7 +3299,7 @@ zvol_create_link(libzfs_handle_t *hdl, const char *dataset)
*/
if ((dhdl = di_devlink_init(ZFS_DRIVER, DI_MAKE_LINK)) == NULL) {
zfs_error_aux(hdl, strerror(errno));
- (void) zfs_error(hdl, EZFS_DEVLINKS,
+ (void) zfs_error_fmt(hdl, EZFS_DEVLINKS,
dgettext(TEXT_DOMAIN, "cannot create device links "
"for '%s'"), dataset);
(void) ioctl(hdl->libzfs_fd, ZFS_IOC_REMOVE_MINOR, &zc);
@@ -3331,7 +3332,7 @@ zvol_remove_link(libzfs_handle_t *hdl, const char *dataset)
return (0);
default:
- return (zfs_standard_error(hdl, errno,
+ return (zfs_standard_error_fmt(hdl, errno,
dgettext(TEXT_DOMAIN, "cannot remove device "
"links for '%s'"), dataset));
}
diff --git a/usr/src/lib/libzfs/common/libzfs_impl.h b/usr/src/lib/libzfs/common/libzfs_impl.h
index c1b05a3750..c3dc95c2fb 100644
--- a/usr/src/lib/libzfs/common/libzfs_impl.h
+++ b/usr/src/lib/libzfs/common/libzfs_impl.h
@@ -86,15 +86,18 @@ struct zpool_handle {
size_t zpool_error_count;
};
-int zfs_error(libzfs_handle_t *, int, const char *, ...);
+int zfs_error(libzfs_handle_t *, int, const char *);
+int zfs_error_fmt(libzfs_handle_t *, int, const char *, ...);
void zfs_error_aux(libzfs_handle_t *, const char *, ...);
void *zfs_alloc(libzfs_handle_t *, size_t);
void *zfs_realloc(libzfs_handle_t *, void *, size_t, size_t);
char *zfs_strdup(libzfs_handle_t *, const char *);
int no_memory(libzfs_handle_t *);
-int zfs_standard_error(libzfs_handle_t *, int, const char *, ...);
-int zpool_standard_error(libzfs_handle_t *, int, const char *, ...);
+int zfs_standard_error(libzfs_handle_t *, int, const char *);
+int zfs_standard_error_fmt(libzfs_handle_t *, int, const char *, ...);
+int zpool_standard_error(libzfs_handle_t *, int, const char *);
+int zpool_standard_error_fmt(libzfs_handle_t *, int, const char *, ...);
int get_dependents(libzfs_handle_t *, boolean_t, const char *, char ***,
size_t *);
diff --git a/usr/src/lib/libzfs/common/libzfs_import.c b/usr/src/lib/libzfs/common/libzfs_import.c
index ea74079bee..d8b8af1f92 100644
--- a/usr/src/lib/libzfs/common/libzfs_import.c
+++ b/usr/src/lib/libzfs/common/libzfs_import.c
@@ -746,7 +746,7 @@ zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv)
*/
for (i = 0; i < argc; i++) {
if (argv[i][0] != '/') {
- (void) zfs_error(hdl, EZFS_BADPATH,
+ (void) zfs_error_fmt(hdl, EZFS_BADPATH,
dgettext(TEXT_DOMAIN, "cannot open '%s'"),
argv[i]);
goto error;
@@ -754,7 +754,7 @@ zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv)
if ((dirp = opendir(argv[i])) == NULL) {
zfs_error_aux(hdl, strerror(errno));
- (void) zfs_error(hdl, EZFS_BADPATH,
+ (void) zfs_error_fmt(hdl, EZFS_BADPATH,
dgettext(TEXT_DOMAIN, "cannot open '%s'"),
argv[i]);
goto error;
diff --git a/usr/src/lib/libzfs/common/libzfs_mount.c b/usr/src/lib/libzfs/common/libzfs_mount.c
index 315527264e..5cbf6b1be5 100644
--- a/usr/src/lib/libzfs/common/libzfs_mount.c
+++ b/usr/src/lib/libzfs/common/libzfs_mount.c
@@ -242,7 +242,7 @@ zfs_mount(zfs_handle_t *zhp, const char *options, int flags)
if (mkdirp(mountpoint, 0755) != 0) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"failed to create mountpoint"));
- return (zfs_error(hdl, EZFS_MOUNTFAILED,
+ return (zfs_error_fmt(hdl, EZFS_MOUNTFAILED,
dgettext(TEXT_DOMAIN, "cannot mount '%s'"),
mountpoint));
}
@@ -259,7 +259,7 @@ zfs_mount(zfs_handle_t *zhp, const char *options, int flags)
!dir_is_empty(mountpoint)) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"directory is not empty"));
- return (zfs_error(hdl, EZFS_MOUNTFAILED,
+ return (zfs_error_fmt(hdl, EZFS_MOUNTFAILED,
dgettext(TEXT_DOMAIN, "cannot mount '%s'"), mountpoint));
}
@@ -277,7 +277,7 @@ zfs_mount(zfs_handle_t *zhp, const char *options, int flags)
else
zfs_error_aux(hdl, strerror(errno));
- return (zfs_error(hdl, EZFS_MOUNTFAILED,
+ return (zfs_error_fmt(hdl, EZFS_MOUNTFAILED,
dgettext(TEXT_DOMAIN, "cannot mount '%s'"),
zhp->zfs_name));
}
@@ -293,7 +293,7 @@ unmount_one(libzfs_handle_t *hdl, const char *mountpoint, int flags)
{
if (umount2(mountpoint, flags) != 0) {
zfs_error_aux(hdl, strerror(errno));
- return (zfs_error(hdl, EZFS_UMOUNTFAILED,
+ return (zfs_error_fmt(hdl, EZFS_UMOUNTFAILED,
dgettext(TEXT_DOMAIN, "cannot unmount '%s'"),
mountpoint));
}
@@ -446,7 +446,7 @@ zfs_share_nfs(zfs_handle_t *zhp)
mountpoint);
if ((fp = popen(buf, "r")) == NULL)
- return (zfs_error(hdl, EZFS_SHARENFSFAILED,
+ return (zfs_error_fmt(hdl, EZFS_SHARENFSFAILED,
dgettext(TEXT_DOMAIN, "cannot share '%s'"),
zfs_get_name(zhp)));
@@ -464,7 +464,7 @@ zfs_share_nfs(zfs_handle_t *zhp)
if (colon != NULL)
zfs_error_aux(hdl, colon + 2);
- (void) zfs_error(hdl, EZFS_SHARENFSFAILED,
+ (void) zfs_error_fmt(hdl, EZFS_SHARENFSFAILED,
dgettext(TEXT_DOMAIN, "cannot share '%s'"),
zfs_get_name(zhp));
@@ -491,7 +491,7 @@ unshare_one(libzfs_handle_t *hdl, const char *name, const char *mountpoint)
mountpoint);
if ((fp = popen(buf, "r")) == NULL)
- return (zfs_error(hdl, EZFS_UNSHARENFSFAILED,
+ return (zfs_error_fmt(hdl, EZFS_UNSHARENFSFAILED,
dgettext(TEXT_DOMAIN,
"cannot unshare '%s'"), name));
@@ -511,7 +511,7 @@ unshare_one(libzfs_handle_t *hdl, const char *name, const char *mountpoint)
verify(pclose(fp) != 0);
- return (zfs_error(hdl, EZFS_UNSHARENFSFAILED,
+ return (zfs_error_fmt(hdl, EZFS_UNSHARENFSFAILED,
dgettext(TEXT_DOMAIN,
"cannot unshare '%s'"), name));
}
@@ -622,7 +622,7 @@ zfs_share_iscsi(zfs_handle_t *zhp)
return (0);
if (iscsitgt_zfs_share == NULL || iscsitgt_zfs_share(dataset) != 0)
- return (zfs_error(hdl, EZFS_SHAREISCSIFAILED,
+ return (zfs_error_fmt(hdl, EZFS_SHAREISCSIFAILED,
dgettext(TEXT_DOMAIN, "cannot share '%s'"), dataset));
return (0);
@@ -640,7 +640,7 @@ zfs_unshare_iscsi(zfs_handle_t *zhp)
*/
if (iscsitgt_zfs_unshare == NULL ||
(iscsitgt_zfs_unshare(dataset) != 0 && errno != ENODEV))
- return (zfs_error(hdl, EZFS_UNSHAREISCSIFAILED,
+ return (zfs_error_fmt(hdl, EZFS_UNSHAREISCSIFAILED,
dgettext(TEXT_DOMAIN, "cannot unshare '%s'"), dataset));
return (0);
diff --git a/usr/src/lib/libzfs/common/libzfs_pool.c b/usr/src/lib/libzfs/common/libzfs_pool.c
index 58afcd99a9..3545b3ddd5 100644
--- a/usr/src/lib/libzfs/common/libzfs_pool.c
+++ b/usr/src/lib/libzfs/common/libzfs_pool.c
@@ -184,7 +184,7 @@ zpool_open_canfail(libzfs_handle_t *hdl, const char *pool)
* Make sure the pool name is valid.
*/
if (!zpool_name_valid(hdl, B_TRUE, pool)) {
- (void) zfs_error(hdl, EZFS_INVALIDNAME,
+ (void) zfs_error_fmt(hdl, EZFS_INVALIDNAME,
dgettext(TEXT_DOMAIN, "cannot open '%s'"),
pool);
return (NULL);
@@ -204,7 +204,7 @@ zpool_open_canfail(libzfs_handle_t *hdl, const char *pool)
if (missing) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"no such pool"));
- (void) zfs_error(hdl, EZFS_NOENT,
+ (void) zfs_error_fmt(hdl, EZFS_NOENT,
dgettext(TEXT_DOMAIN, "cannot open '%s'"),
pool);
zpool_close(zhp);
@@ -258,7 +258,7 @@ zpool_open(libzfs_handle_t *hdl, const char *pool)
return (NULL);
if (zhp->zpool_state == POOL_STATE_UNAVAIL) {
- (void) zfs_error(hdl, EZFS_POOLUNAVAIL,
+ (void) zfs_error_fmt(hdl, EZFS_POOLUNAVAIL,
dgettext(TEXT_DOMAIN, "cannot open '%s'"), zhp->zpool_name);
zpool_close(zhp);
return (NULL);
@@ -404,7 +404,7 @@ zpool_create(libzfs_handle_t *hdl, const char *pool, nvlist_t *nvroot,
return (zfs_error(hdl, EZFS_INVALIDNAME, msg));
if (altroot != NULL && altroot[0] != '/')
- return (zfs_error(hdl, EZFS_BADPATH,
+ return (zfs_error_fmt(hdl, EZFS_BADPATH,
dgettext(TEXT_DOMAIN, "bad alternate root '%s'"), altroot));
if (zcmd_write_src_nvlist(hdl, &zc, nvroot, NULL) != 0)
@@ -621,7 +621,7 @@ zpool_export(zpool_handle_t *zhp)
(void) strlcpy(zc.zc_name, zhp->zpool_name, sizeof (zc.zc_name));
if (ioctl(zhp->zpool_hdl->libzfs_fd, ZFS_IOC_POOL_EXPORT, &zc) != 0)
- return (zpool_standard_error(zhp->zpool_hdl, errno,
+ return (zpool_standard_error_fmt(zhp->zpool_hdl, errno,
dgettext(TEXT_DOMAIN, "cannot export '%s'"),
zhp->zpool_name));
@@ -648,7 +648,7 @@ zpool_import(libzfs_handle_t *hdl, nvlist_t *config, const char *newname,
if (newname != NULL) {
if (!zpool_name_valid(hdl, B_FALSE, newname))
- return (zfs_error(hdl, EZFS_INVALIDNAME,
+ return (zfs_error_fmt(hdl, EZFS_INVALIDNAME,
dgettext(TEXT_DOMAIN, "cannot import '%s'"),
newname));
thename = (char *)newname;
@@ -657,7 +657,7 @@ zpool_import(libzfs_handle_t *hdl, nvlist_t *config, const char *newname,
}
if (altroot != NULL && altroot[0] != '/')
- return (zfs_error(hdl, EZFS_BADPATH,
+ return (zfs_error_fmt(hdl, EZFS_BADPATH,
dgettext(TEXT_DOMAIN, "bad alternate root '%s'"),
altroot));
@@ -1758,7 +1758,7 @@ zpool_upgrade(zpool_handle_t *zhp)
(void) strcpy(zc.zc_name, zhp->zpool_name);
if (ioctl(hdl->libzfs_fd, ZFS_IOC_POOL_UPGRADE, &zc) != 0)
- return (zpool_standard_error(hdl, errno,
+ return (zpool_standard_error_fmt(hdl, errno,
dgettext(TEXT_DOMAIN, "cannot upgrade '%s'"),
zhp->zpool_name));
@@ -1833,15 +1833,16 @@ get_history(zpool_handle_t *zhp, char *buf, uint64_t *off, uint64_t *len)
if (ioctl(hdl->libzfs_fd, ZFS_IOC_POOL_GET_HISTORY, &zc) != 0) {
switch (errno) {
case EPERM:
- return (zfs_error(hdl, EZFS_PERM, dgettext(TEXT_DOMAIN,
+ return (zfs_error_fmt(hdl, EZFS_PERM,
+ dgettext(TEXT_DOMAIN,
"cannot show history for pool '%s'"),
zhp->zpool_name));
case ENOENT:
- return (zfs_error(hdl, EZFS_NOHISTORY,
+ return (zfs_error_fmt(hdl, EZFS_NOHISTORY,
dgettext(TEXT_DOMAIN, "cannot get history for pool "
"'%s'"), zhp->zpool_name));
default:
- return (zpool_standard_error(hdl, errno,
+ return (zpool_standard_error_fmt(hdl, errno,
dgettext(TEXT_DOMAIN,
"cannot get history for '%s'"), zhp->zpool_name));
}
diff --git a/usr/src/lib/libzfs/common/libzfs_util.c b/usr/src/lib/libzfs/common/libzfs_util.c
index 14be406f11..48ee3f509e 100644
--- a/usr/src/lib/libzfs/common/libzfs_util.c
+++ b/usr/src/lib/libzfs/common/libzfs_util.c
@@ -199,15 +199,21 @@ zfs_verror(libzfs_handle_t *hdl, int error, const char *fmt, va_list ap)
}
(void) fprintf(stderr, "%s: %s\n", hdl->libzfs_action,
- libzfs_error_description(hdl));
+ libzfs_error_description(hdl));
if (error == EZFS_NOMEM)
exit(1);
}
}
+int
+zfs_error(libzfs_handle_t *hdl, int error, const char *msg)
+{
+ return (zfs_error_fmt(hdl, error, "%s", msg));
+}
+
/*PRINTFLIKE3*/
int
-zfs_error(libzfs_handle_t *hdl, int error, const char *fmt, ...)
+zfs_error_fmt(libzfs_handle_t *hdl, int error, const char *fmt, ...)
{
va_list ap;
@@ -242,9 +248,15 @@ zfs_common_error(libzfs_handle_t *hdl, int error, const char *fmt,
return (0);
}
+int
+zfs_standard_error(libzfs_handle_t *hdl, int error, const char *msg)
+{
+ return (zfs_standard_error_fmt(hdl, error, "%s", msg));
+}
+
/*PRINTFLIKE3*/
int
-zfs_standard_error(libzfs_handle_t *hdl, int error, const char *fmt, ...)
+zfs_standard_error_fmt(libzfs_handle_t *hdl, int error, const char *fmt, ...)
{
va_list ap;
@@ -294,9 +306,15 @@ zfs_standard_error(libzfs_handle_t *hdl, int error, const char *fmt, ...)
return (-1);
}
+int
+zpool_standard_error(libzfs_handle_t *hdl, int error, const char *msg)
+{
+ return (zpool_standard_error_fmt(hdl, error, "%s", msg));
+}
+
/*PRINTFLIKE3*/
int
-zpool_standard_error(libzfs_handle_t *hdl, int error, const char *fmt, ...)
+zpool_standard_error_fmt(libzfs_handle_t *hdl, int error, const char *fmt, ...)
{
va_list ap;