]> git.proxmox.com Git - mirror_zfs.git/commitdiff
nvpair: Constify string functions
authorRichard Yao <richard.yao@alumni.stonybrook.edu>
Sat, 11 Mar 2023 18:39:24 +0000 (13:39 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 14 Mar 2023 22:25:50 +0000 (15:25 -0700)
After addressing coverity complaints involving `nvpair_name()`, the
compiler started complaining about dropping const. This lead to a rabbit
hole where not only `nvpair_name()` needed to be constified, but also
`nvpair_value_string()`, `fnvpair_value_string()` and a few other static
functions, plus variable pointers throughout the code. The result became
a fairly big change, so it has been split out into its own patch.

Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #14612

72 files changed:
cmd/mount_zfs.c
cmd/zdb/zdb.c
cmd/zed/agents/fmd_api.c
cmd/zed/agents/zfs_agents.c
cmd/zed/agents/zfs_diagnosis.c
cmd/zed/agents/zfs_mod.c
cmd/zed/agents/zfs_retire.c
cmd/zed/zed_disk_event.c
cmd/zed/zed_event.c
cmd/zfs/zfs_iter.c
cmd/zfs/zfs_main.c
cmd/zpool/zpool_iter.c
cmd/zpool/zpool_main.c
cmd/zpool/zpool_vdev.c
cmd/zpool_influxdb/zpool_influxdb.c
include/libnvpair.h
include/libzfs.h
include/sys/dmu_recv.h
include/sys/nvpair.h
lib/libnvpair/libnvpair.abi
lib/libnvpair/libnvpair.c
lib/libnvpair/libnvpair_json.c
lib/libzfs/libzfs.abi
lib/libzfs/libzfs_crypto.c
lib/libzfs/libzfs_dataset.c
lib/libzfs/libzfs_impl.h
lib/libzfs/libzfs_import.c
lib/libzfs/libzfs_iter.c
lib/libzfs/libzfs_mount.c
lib/libzfs/libzfs_pool.c
lib/libzfs/libzfs_sendrecv.c
lib/libzfs/libzfs_status.c
lib/libzfs/libzfs_util.c
lib/libzfs/os/linux/libzfs_pool_os.c
lib/libzfs_core/libzfs_core.abi
lib/libzfsbootenv/libzfsbootenv.abi
lib/libzfsbootenv/lzbe_device.c
lib/libzpool/util.c
lib/libzutil/os/linux/zutil_import_os.c
lib/libzutil/zutil_import.c
lib/libzutil/zutil_import.h
module/nvpair/fnvpair.c
module/nvpair/nvpair.c
module/os/freebsd/spl/spl_sysevent.c
module/os/freebsd/zfs/zfs_znode.c
module/os/linux/zfs/zfs_znode.c
module/zcommon/zfs_comutil.c
module/zcommon/zfs_deleg.c
module/zfs/dmu_recv.c
module/zfs/dsl_bookmark.c
module/zfs/dsl_crypt.c
module/zfs/dsl_dataset.c
module/zfs/dsl_destroy.c
module/zfs/dsl_prop.c
module/zfs/dsl_userhold.c
module/zfs/fm.c
module/zfs/spa.c
module/zfs/spa_config.c
module/zfs/spa_history.c
module/zfs/spa_misc.c
module/zfs/vdev.c
module/zfs/vdev_draid.c
module/zfs/vdev_label.c
module/zfs/vdev_removal.c
module/zfs/zcp.c
module/zfs/zcp_get.c
module/zfs/zcp_iter.c
module/zfs/zfs_fuid.c
module/zfs/zfs_ioctl.c
tests/zfs-tests/cmd/draid.c
tests/zfs-tests/cmd/ereports.c
tests/zfs-tests/cmd/nvlist_to_lua.c

index bc2d366bf25de2d8e3a868206d1f3dbc756d7bd9..fc9220950647a044624e2dc0a6a19a5f6d59099d 100644 (file)
@@ -74,7 +74,7 @@ parse_dataset(const char *target, char **dataset)
 
        nvlist_t *cfg = NULL;
        if (zpool_read_label(fd, &cfg, NULL) == 0) {
-               char *nm = NULL;
+               const char *nm = NULL;
                if (!nvlist_lookup_string(cfg, ZPOOL_CONFIG_POOL_NAME, &nm))
                        strlcpy(*dataset, nm, PATH_MAX);
                nvlist_free(cfg);
index 9a0ffd25e76624f09d6ca34e5e1d57a3491b8ef8..e87826f7467bb3f48a026ed8f4a0d891d2ca0da9 100644 (file)
@@ -4209,7 +4209,7 @@ collect_nvlist_stats(nvlist_t *nvl, zdb_nvl_stats_t *stats)
 {
        nvlist_t *list, **array;
        nvpair_t *nvp = NULL;
-       char *name;
+       const char *name;
        uint_t i, items;
 
        stats->zns_list_count++;
index 6858da5e7cf107311117f8a52ebcb746051e4c45..4a6cfbf8c05c1f51c2bdf29fd0613f7bb7e339c7 100644 (file)
@@ -359,7 +359,7 @@ static void
 zed_log_fault(nvlist_t *nvl, const char *uuid, const char *code)
 {
        nvlist_t *rsrc;
-       char *strval;
+       const char *strval;
        uint64_t guid;
        uint8_t byte;
 
@@ -389,7 +389,7 @@ zed_log_fault(nvlist_t *nvl, const char *uuid, const char *code)
 static const char *
 fmd_fault_mkcode(nvlist_t *fault)
 {
-       char *class;
+       const char *class;
        const char *code = "-";
 
        /*
@@ -708,7 +708,7 @@ int
 fmd_nvl_class_match(fmd_hdl_t *hdl, nvlist_t *nvl, const char *pattern)
 {
        (void) hdl;
-       char *class;
+       const char *class;
 
        return (nvl != NULL &&
            nvlist_lookup_string(nvl, FM_CLASS, &class) == 0 &&
index 587051c25bfd5c759830992bd9d2a9092e460021..a2daa77a61fe2a6d569a8d65cf22500e04aa6f34 100644 (file)
@@ -64,7 +64,7 @@ typedef enum device_type {
 typedef struct guid_search {
        uint64_t        gs_pool_guid;
        uint64_t        gs_vdev_guid;
-       char            *gs_devid;
+       const char      *gs_devid;
        device_type_t   gs_vdev_type;
        uint64_t        gs_vdev_expandtime;     /* vdev expansion time */
 } guid_search_t;
@@ -77,7 +77,7 @@ static boolean_t
 zfs_agent_iter_vdev(zpool_handle_t *zhp, nvlist_t *nvl, void *arg)
 {
        guid_search_t *gsp = arg;
-       char *path = NULL;
+       const char *path = NULL;
        uint_t c, children;
        nvlist_t **child;
        uint64_t vdev_guid;
@@ -211,7 +211,7 @@ zfs_agent_post_event(const char *class, const char *subclass, nvlist_t *nvl)
                uint64_t pool_guid = 0, vdev_guid = 0;
                guid_search_t search = { 0 };
                device_type_t devtype = DEVICE_TYPE_PRIMARY;
-               char *devid = NULL;
+               const char *devid = NULL;
 
                class = "resource.fs.zfs.removed";
                subclass = "";
index 685f71bb923bff2f5215021c6750723dd2728284..f6ba334a3ba3aabb88e6feb7562bc3dcfc8c3c20 100644 (file)
@@ -464,7 +464,7 @@ zfs_fm_recv(fmd_hdl_t *hdl, fmd_event_t *ep, nvlist_t *nvl, const char *class)
        nvlist_t *detector;
        boolean_t pool_found = B_FALSE;
        boolean_t isresource;
-       char *type;
+       const char *type;
 
        /*
         * We subscribe to notifications for vdev or pool removal.  In these
@@ -780,7 +780,7 @@ zfs_fm_recv(fmd_hdl_t *hdl, fmd_event_t *ep, nvlist_t *nvl, const char *class)
            ZFS_MAKE_EREPORT(FM_EREPORT_ZFS_IO_FAILURE)) ||
            fmd_nvl_class_match(hdl, nvl,
            ZFS_MAKE_EREPORT(FM_EREPORT_ZFS_PROBE_FAILURE))) {
-               char *failmode = NULL;
+               const char *failmode = NULL;
                boolean_t checkremove = B_FALSE;
                uint32_t pri = 0;
                int32_t flags = 0;
index e73fe25e56ddbce034f7c393e689bb0adf42a490..1c82bd4f0010698e1a9c6998e7c6f7bfca104f70 100644 (file)
@@ -183,7 +183,7 @@ zfs_unavail_pool(zpool_handle_t *zhp, void *data)
 static void
 zfs_process_add(zpool_handle_t *zhp, nvlist_t *vdev, boolean_t labeled)
 {
-       char *path;
+       const char *path;
        vdev_state_t newstate;
        nvlist_t *nvroot, *newvd;
        pendingdev_t *device;
@@ -191,7 +191,7 @@ zfs_process_add(zpool_handle_t *zhp, nvlist_t *vdev, boolean_t labeled)
        uint64_t offline = 0ULL, faulted = 0ULL;
        uint64_t guid = 0ULL;
        uint64_t is_spare = 0;
-       char *physpath = NULL, *new_devid = NULL, *enc_sysfs_path = NULL;
+       const char *physpath = NULL, *new_devid = NULL, *enc_sysfs_path = NULL;
        char rawpath[PATH_MAX], fullpath[PATH_MAX];
        char devpath[PATH_MAX];
        int ret;
@@ -549,7 +549,7 @@ static void
 zfs_iter_vdev(zpool_handle_t *zhp, nvlist_t *nvl, void *data)
 {
        dev_data_t *dp = data;
-       char *path = NULL;
+       const char *path = NULL;
        uint_t c, children;
        nvlist_t **child;
        uint64_t guid = 0;
@@ -851,7 +851,7 @@ guid_iter(uint64_t pool_guid, uint64_t vdev_guid, const char *devid,
 static int
 zfs_deliver_add(nvlist_t *nvl)
 {
-       char *devpath = NULL, *devid = NULL;
+       const char *devpath = NULL, *devid = NULL;
        uint64_t pool_guid = 0, vdev_guid = 0;
        boolean_t is_slice;
 
@@ -999,7 +999,8 @@ zfsdle_vdev_online(zpool_handle_t *zhp, void *data)
        nvlist_t *tgt;
        int error;
 
-       char *tmp_devname, devname[MAXPATHLEN] = "";
+       const char *tmp_devname;
+       char devname[MAXPATHLEN] = "";
        uint64_t guid;
 
        if (nvlist_lookup_uint64(udev_nvl, ZFS_EV_VDEV_GUID, &guid) == 0) {
@@ -1017,7 +1018,8 @@ zfsdle_vdev_online(zpool_handle_t *zhp, void *data)
 
        if ((tgt = zpool_find_vdev_by_physpath(zhp, devname,
            &avail_spare, &l2cache, NULL)) != NULL) {
-               char *path, fullpath[MAXPATHLEN];
+               const char *path;
+               char fullpath[MAXPATHLEN];
                uint64_t wholedisk = 0;
 
                error = nvlist_lookup_string(tgt, ZPOOL_CONFIG_PATH, &path);
@@ -1030,10 +1032,11 @@ zfsdle_vdev_online(zpool_handle_t *zhp, void *data)
                    &wholedisk);
 
                if (wholedisk) {
+                       char *tmp;
                        path = strrchr(path, '/');
                        if (path != NULL) {
-                               path = zfs_strip_partition(path + 1);
-                               if (path == NULL) {
+                               tmp = zfs_strip_partition(path + 1);
+                               if (tmp == NULL) {
                                        zpool_close(zhp);
                                        return (0);
                                }
@@ -1042,8 +1045,8 @@ zfsdle_vdev_online(zpool_handle_t *zhp, void *data)
                                return (0);
                        }
 
-                       (void) strlcpy(fullpath, path, sizeof (fullpath));
-                       free(path);
+                       (void) strlcpy(fullpath, tmp, sizeof (fullpath));
+                       free(tmp);
 
                        /*
                         * We need to reopen the pool associated with this
@@ -1148,7 +1151,8 @@ zfsdle_vdev_online(zpool_handle_t *zhp, void *data)
 static int
 zfs_deliver_dle(nvlist_t *nvl)
 {
-       char *devname, name[MAXPATHLEN];
+       const char *devname;
+       char name[MAXPATHLEN];
        uint64_t guid;
 
        if (nvlist_lookup_uint64(nvl, ZFS_EV_VDEV_GUID, &guid) == 0) {
index 45a45c497a0ab729bab9535f91a5699cd68f4e76..28714ec295bb8674939d31b8aac14b2e15b3048c 100644 (file)
@@ -282,7 +282,7 @@ replace_with_spare(fmd_hdl_t *hdl, zpool_handle_t *zhp, nvlist_t *vdev)
         */
        for (s = 0; s < nspares; s++) {
                boolean_t rebuild = B_FALSE;
-               char *spare_name, *type;
+               const char *spare_name, *type;
 
                if (nvlist_lookup_string(spares[s], ZPOOL_CONFIG_PATH,
                    &spare_name) != 0)
@@ -377,9 +377,9 @@ zfs_retire_recv(fmd_hdl_t *hdl, fmd_event_t *ep, nvlist_t *nvl,
        boolean_t is_repair;
        boolean_t l2arc = B_FALSE;
        boolean_t spare = B_FALSE;
-       char *scheme;
+       const char *scheme;
        nvlist_t *vdev = NULL;
-       char *uuid;
+       const char *uuid;
        int repair_done = 0;
        boolean_t retire;
        boolean_t is_disk;
@@ -401,7 +401,7 @@ zfs_retire_recv(fmd_hdl_t *hdl, fmd_event_t *ep, nvlist_t *nvl,
        if (strcmp(class, "resource.fs.zfs.removed") == 0 ||
            (strcmp(class, "resource.fs.zfs.statechange") == 0 &&
            (state == VDEV_STATE_REMOVED || state == VDEV_STATE_FAULTED))) {
-               char *devtype;
+               const char *devtype;
                char *devname;
 
                if (nvlist_lookup_string(nvl, FM_EREPORT_PAYLOAD_ZFS_VDEV_TYPE,
index db89ecc907bbcfe7767b0ccd37f703ee93d924c4..32a8789d30019ca7aff86a5fefbcf4bb49d0984c 100644 (file)
@@ -60,7 +60,7 @@ struct udev_monitor *g_mon;
 static void
 zed_udev_event(const char *class, const char *subclass, nvlist_t *nvl)
 {
-       char *strval;
+       const char *strval;
        uint64_t numval;
 
        zed_log_msg(LOG_INFO, "zed_disk_event:");
@@ -178,7 +178,8 @@ static void *
 zed_udev_monitor(void *arg)
 {
        struct udev_monitor *mon = arg;
-       char *tmp, *tmp2;
+       const char *tmp;
+       char *tmp2;
 
        zed_log_msg(LOG_INFO, "Waiting for new udev disk events...");
 
@@ -336,7 +337,7 @@ zed_udev_monitor(void *arg)
                if (strcmp(class, EC_DEV_STATUS) == 0 &&
                    udev_device_get_property_value(dev, "DM_UUID") &&
                    udev_device_get_property_value(dev, "MPATH_SBIN_PATH")) {
-                       tmp = (char *)udev_device_get_devnode(dev);
+                       tmp = udev_device_get_devnode(dev);
                        tmp2 = zfs_get_underlying_path(tmp);
                        if (tmp && tmp2 && (strcmp(tmp, tmp2) != 0)) {
                                /*
@@ -353,8 +354,7 @@ zed_udev_monitor(void *arg)
                                class = EC_DEV_ADD;
                                subclass = ESC_DISK;
                        } else {
-                               tmp = (char *)
-                                   udev_device_get_property_value(dev,
+                               tmp = udev_device_get_property_value(dev,
                                    "DM_NR_VALID_PATHS");
                                /* treat as a multipath remove */
                                if (tmp != NULL && strcmp(tmp, "0") == 0) {
index ebd6851a2a86cffbc748d97a89dcb351b6c4e14f..c60d5a4bc22e79a5989fe3e4f387a15680f0288d 100644 (file)
@@ -612,7 +612,7 @@ _zed_event_add_string_array(uint64_t eid, zed_strings_t *zsp,
        char buf[MAXBUF];
        int buflen = sizeof (buf);
        const char *name;
-       char **strp;
+       const char **strp;
        uint_t nelem;
        uint_t i;
        char *p;
@@ -652,7 +652,7 @@ _zed_event_add_nvpair(uint64_t eid, zed_strings_t *zsp, nvpair_t *nvp)
        uint16_t i16;
        uint32_t i32;
        uint64_t i64;
-       char *str;
+       const char *str;
 
        assert(zsp != NULL);
        assert(nvp != NULL);
@@ -935,7 +935,7 @@ zed_event_service(struct zed_conf *zcp)
        uint64_t eid;
        int64_t *etime;
        uint_t nelem;
-       char *class;
+       const char *class;
        const char *subclass;
        int rv;
 
index 0f8ddd93aad778a6293f2e5b676bbeb0f7aa9bb8..6665627d43e324e7d5d277058077da42eb0e9b1e 100644 (file)
@@ -348,7 +348,7 @@ zfs_sort(const void *larg, const void *rarg, void *data)
 
        for (psc = sc; psc != NULL; psc = psc->sc_next) {
                char lbuf[ZFS_MAXPROPLEN], rbuf[ZFS_MAXPROPLEN];
-               char *lstr, *rstr;
+               const char *lstr, *rstr;
                uint64_t lnum = 0, rnum = 0;
                boolean_t lvalid, rvalid;
                int ret = 0;
index 437f83c2a81e9b27fca8503ad0a522b0c7265b20..64a38faa178fbdf255f79b92fc0787de52a4369b 100644 (file)
@@ -1049,7 +1049,7 @@ zfs_do_create(int argc, char **argv)
        int ret = 1;
        nvlist_t *props;
        uint64_t intval;
-       char *strval;
+       const char *strval;
 
        if (nvlist_alloc(&props, NV_UNIQUE_NAME, 0) != 0)
                nomem();
@@ -1173,11 +1173,12 @@ zfs_do_create(int argc, char **argv)
 
                if (volblocksize != ZVOL_DEFAULT_BLOCKSIZE &&
                    nvlist_lookup_string(props, prop, &strval) != 0) {
-                       if (asprintf(&strval, "%llu",
+                       char *tmp;
+                       if (asprintf(&tmp, "%llu",
                            (u_longlong_t)volblocksize) == -1)
                                nomem();
-                       nvlist_add_string(props, prop, strval);
-                       free(strval);
+                       nvlist_add_string(props, prop, tmp);
+                       free(tmp);
                }
 
                /*
@@ -1252,7 +1253,7 @@ zfs_do_create(int argc, char **argv)
                    dryrun ? "would create %s\n" : "create %s\n", argv[0]);
                while ((nvp = nvlist_next_nvpair(props, nvp)) != NULL) {
                        uint64_t uval;
-                       char *sval;
+                       const char *sval;
 
                        switch (nvpair_type(nvp)) {
                        case DATA_TYPE_UINT64:
@@ -2701,8 +2702,8 @@ us_compare(const void *larg, const void *rarg, void *unused)
        boolean_t lvb, rvb;
 
        for (; sortcol != NULL; sortcol = sortcol->sc_next) {
-               char *lvstr = (char *)"";
-               char *rvstr = (char *)"";
+               const char *lvstr = "";
+               const char *rvstr = "";
                uint32_t lv32 = 0;
                uint32_t rv32 = 0;
                uint64_t lv64 = 0;
@@ -6495,7 +6496,7 @@ print_holds(boolean_t scripted, int nwidth, int tagwidth, nvlist_t *nvl,
        }
 
        while ((nvp = nvlist_next_nvpair(nvl, nvp)) != NULL) {
-               char *zname = nvpair_name(nvp);
+               const char *zname = nvpair_name(nvp);
                nvlist_t *nvl2;
                nvpair_t *nvp2 = NULL;
                (void) nvpair_value_nvlist(nvp, &nvl2);
@@ -8095,7 +8096,7 @@ zfs_do_channel_program(int argc, char **argv)
                const char *msg = gettext("Channel program execution failed");
                uint64_t instructions = 0;
                if (outnvl != NULL && nvlist_exists(outnvl, ZCP_RET_ERROR)) {
-                       char *es = NULL;
+                       const char *es = NULL;
                        (void) nvlist_lookup_string(outnvl,
                            ZCP_RET_ERROR, &es);
                        if (es == NULL)
index 772742ea03bdeb1669a707b1c75784039362320a..7c6549b0ae546d4b37b9f419de6b804935f8da28 100644 (file)
@@ -564,9 +564,9 @@ for_each_vdev_run_cb(void *zhp_data, nvlist_t *nv, void *cb_vcdl)
 {
        vdev_cmd_data_list_t *vcdl = cb_vcdl;
        vdev_cmd_data_t *data;
-       char *path = NULL;
+       const char *path = NULL;
        char *vname = NULL;
-       char *vdev_enc_sysfs_path = NULL;
+       const char *vdev_enc_sysfs_path = NULL;
        int i, match = 0;
        zpool_handle_t *zhp = zhp_data;
 
index d2614411df3ff3c2037bccdd6cbe15c2c7cb5729..3335569faa1a3f34f5af3cf1a191ef954cc74309 100644 (file)
@@ -712,7 +712,7 @@ print_vdev_tree(zpool_handle_t *zhp, const char *name, nvlist_t *nv, int indent,
 
        for (c = 0; c < children; c++) {
                uint64_t is_log = B_FALSE, is_hole = B_FALSE;
-               char *class = (char *)"";
+               const char *class = "";
 
                (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_HOLE,
                    &is_hole);
@@ -724,7 +724,7 @@ print_vdev_tree(zpool_handle_t *zhp, const char *name, nvlist_t *nv, int indent,
                (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_LOG,
                    &is_log);
                if (is_log)
-                       class = (char *)VDEV_ALLOC_BIAS_LOG;
+                       class = VDEV_ALLOC_BIAS_LOG;
                (void) nvlist_lookup_string(child[c],
                    ZPOOL_CONFIG_ALLOCATION_BIAS, &class);
                if (strcmp(match, class) != 0)
@@ -811,7 +811,7 @@ add_prop_list(const char *propname, const char *propval, nvlist_t **props,
        zpool_prop_t prop = ZPOOL_PROP_INVAL;
        nvlist_t *proplist;
        const char *normnm;
-       char *strval;
+       const char *strval;
 
        if (*props == NULL &&
            nvlist_alloc(props, NV_UNIQUE_NAME, 0) != 0) {
@@ -909,7 +909,7 @@ static int
 add_prop_list_default(const char *propname, const char *propval,
     nvlist_t **props)
 {
-       char *pval;
+       const char *pval;
 
        if (nvlist_lookup_string(*props, propname, &pval) == 0)
                return (0);
@@ -1761,7 +1761,7 @@ zpool_do_create(int argc, char **argv)
                 */
                for (spa_feature_t i = 0; i < SPA_FEATURES; i++) {
                        char propname[MAXPATHLEN];
-                       char *propval;
+                       const char *propval;
                        zfeature_info_t *feat = &spa_feature_table[i];
 
                        (void) snprintf(propname, sizeof (propname),
@@ -2089,7 +2089,7 @@ is_blank_str(const char *str)
 
 /* Print command output lines for specific vdev in a specific pool */
 static void
-zpool_print_cmd(vdev_cmd_data_list_t *vcdl, const char *pool, char *path)
+zpool_print_cmd(vdev_cmd_data_list_t *vcdl, const char *pool, const char *path)
 {
        vdev_cmd_data_t *data;
        int i, j;
@@ -2281,8 +2281,8 @@ print_status_config(zpool_handle_t *zhp, status_cbdata_t *cb, const char *name,
        uint64_t notpresent;
        spare_cbdata_t spare_cb;
        const char *state;
-       char *type;
-       char *path = NULL;
+       const char *type;
+       const char *path = NULL;
        const char *rcolor = NULL, *wcolor = NULL, *ccolor = NULL;
 
        if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN,
@@ -2550,7 +2550,8 @@ print_import_config(status_cbdata_t *cb, const char *name, nvlist_t *nv,
        nvlist_t **child;
        uint_t c, children;
        vdev_stat_t *vs;
-       char *type, *vname;
+       const char *type;
+       char *vname;
 
        verify(nvlist_lookup_string(nv, ZPOOL_CONFIG_TYPE, &type) == 0);
        if (strcmp(type, VDEV_TYPE_MISSING) == 0 ||
@@ -2678,8 +2679,8 @@ print_class_vdevs(zpool_handle_t *zhp, status_cbdata_t *cb, nvlist_t *nv,
 
        for (c = 0; c < children; c++) {
                uint64_t is_log = B_FALSE;
-               char *bias = NULL;
-               char *type = NULL;
+               const char *bias = NULL;
+               const char *type = NULL;
 
                (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_LOG,
                    &is_log);
@@ -2722,7 +2723,7 @@ show_import(nvlist_t *config, boolean_t report_error)
 {
        uint64_t pool_state;
        vdev_stat_t *vs;
-       char *name;
+       const char *name;
        uint64_t guid;
        uint64_t hostid = 0;
        const char *msgid;
@@ -2732,7 +2733,7 @@ show_import(nvlist_t *config, boolean_t report_error)
        zpool_errata_t errata;
        const char *health;
        uint_t vsc;
-       char *comment;
+       const char *comment;
        status_cbdata_t cb = { 0 };
 
        verify(nvlist_lookup_string(config, ZPOOL_CONFIG_POOL_NAME,
@@ -3285,7 +3286,7 @@ import_pools(nvlist_t *pools, nvlist_t *props, char *mntopts, int flags,
                                        (void) show_import(config, B_TRUE);
                        }
                } else if (import->poolname != NULL) {
-                       char *name;
+                       const char *name;
 
                        /*
                         * We are searching for a pool based on name.
@@ -3360,7 +3361,7 @@ name_or_guid_exists(zpool_handle_t *zhp, void *data)
                return (0);
 
        if (args->poolname != NULL) {
-               char *pool_name;
+               const char *pool_name;
 
                verify(nvlist_lookup_string(config, ZPOOL_CONFIG_POOL_NAME,
                    &pool_name) == 0);
@@ -4796,7 +4797,7 @@ print_vdev_stats(zpool_handle_t *zhp, const char *name, nvlist_t *oldnv,
        }
 
        if (cb->vcdl != NULL) {
-               char *path;
+               const char *path;
                if (nvlist_lookup_string(newnv, ZPOOL_CONFIG_PATH,
                    &path) == 0) {
                        printf("  ");
@@ -4861,13 +4862,13 @@ children:
 
                for (c = 0; c < children; c++) {
                        uint64_t islog = B_FALSE;
-                       char *bias = NULL;
-                       char *type = NULL;
+                       const char *bias = NULL;
+                       const char *type = NULL;
 
                        (void) nvlist_lookup_uint64(newchild[c],
                            ZPOOL_CONFIG_IS_LOG, &islog);
                        if (islog) {
-                               bias = (char *)VDEV_ALLOC_CLASS_LOGS;
+                               bias = VDEV_ALLOC_CLASS_LOGS;
                        } else {
                                (void) nvlist_lookup_string(newchild[c],
                                    ZPOOL_CONFIG_ALLOCATION_BIAS, &bias);
@@ -6227,12 +6228,12 @@ print_list_stats(zpool_handle_t *zhp, const char *name, nvlist_t *nv,
                boolean_t printed = B_FALSE;
 
                for (c = 0; c < children; c++) {
-                       char *bias = NULL;
-                       char *type = NULL;
+                       const char *bias = NULL;
+                       const char *type = NULL;
 
                        if (nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_LOG,
                            &islog) == 0 && islog) {
-                               bias = (char *)VDEV_ALLOC_CLASS_LOGS;
+                               bias = VDEV_ALLOC_CLASS_LOGS;
                        } else {
                                (void) nvlist_lookup_string(child[c],
                                    ZPOOL_CONFIG_ALLOCATION_BIAS, &bias);
@@ -9531,7 +9532,8 @@ typedef struct ev_opts {
 static void
 zpool_do_events_short(nvlist_t *nvl, ev_opts_t *opts)
 {
-       char ctime_str[26], str[32], *ptr;
+       char ctime_str[26], str[32];
+       const char *ptr;
        int64_t *tv;
        uint_t n;
 
@@ -9567,7 +9569,7 @@ zpool_do_events_nvprint(nvlist_t *nvl, int depth)
                uint16_t i16;
                uint32_t i32;
                uint64_t i64;
-               char *str;
+               const char *str;
                nvlist_t *cnv;
 
                printf(gettext("%*s%s = "), depth, "", name);
@@ -9765,7 +9767,7 @@ zpool_do_events_nvprint(nvlist_t *nvl, int depth)
                        }
 
                case DATA_TYPE_STRING_ARRAY: {
-                       char **str;
+                       const char **str;
                        uint_t i, nelem;
 
                        (void) nvpair_value_string_array(nvp, &str, &nelem);
@@ -9794,7 +9796,7 @@ zpool_do_events_next(ev_opts_t *opts)
 {
        nvlist_t *nvl;
        int zevent_fd, ret, dropped;
-       char *pool;
+       const char *pool;
 
        zevent_fd = open(ZFS_DEV, O_RDWR);
        VERIFY(zevent_fd >= 0);
@@ -10443,7 +10445,7 @@ vdev_any_spare_replacing(nvlist_t *nv)
 {
        nvlist_t **child;
        uint_t c, children;
-       char *vdev_type;
+       const char *vdev_type;
 
        (void) nvlist_lookup_string(nv, ZPOOL_CONFIG_TYPE, &vdev_type);
 
index eb81dfe070689115f13b744e714b71d1d7ccf1b4..99a521aa2a28775fde59a98848f4e37cff69a7a9 100644 (file)
@@ -380,7 +380,7 @@ make_leaf_vdev(nvlist_t *props, const char *arg, boolean_t is_primary)
         * Override defaults if custom properties are provided.
         */
        if (props != NULL) {
-               char *value = NULL;
+               const char *value = NULL;
 
                if (nvlist_lookup_string(props,
                    zpool_prop_to_name(ZPOOL_PROP_ASHIFT), &value) == 0) {
@@ -435,7 +435,7 @@ make_leaf_vdev(nvlist_t *props, const char *arg, boolean_t is_primary)
  *     one general purpose vdev.
  */
 typedef struct replication_level {
-       char *zprl_type;
+       const char *zprl_type;
        uint64_t zprl_children;
        uint64_t zprl_parity;
 } replication_level_t;
@@ -489,7 +489,7 @@ get_replication(nvlist_t *nvroot, boolean_t fatal)
        nvlist_t **child;
        uint_t c, children;
        nvlist_t *nv;
-       char *type;
+       const char *type;
        replication_level_t lastrep = {0};
        replication_level_t rep;
        replication_level_t *ret;
@@ -567,10 +567,10 @@ get_replication(nvlist_t *nvroot, boolean_t fatal)
                        vdev_size = -1LL;
                        for (c = 0; c < children; c++) {
                                nvlist_t *cnv = child[c];
-                               char *path;
+                               const char *path;
                                struct stat64 statbuf;
                                int64_t size = -1LL;
-                               char *childtype;
+                               const char *childtype;
                                int fd, err;
 
                                rep.zprl_children++;
@@ -904,7 +904,7 @@ check_replication(nvlist_t *config, nvlist_t *newroot)
 }
 
 static int
-zero_label(char *path)
+zero_label(const char *path)
 {
        const int size = 4096;
        char buf[size];
@@ -951,7 +951,7 @@ make_disks(zpool_handle_t *zhp, nvlist_t *nv)
 {
        nvlist_t **child;
        uint_t c, children;
-       char *type, *path;
+       const char *type, *path;
        char devpath[MAXPATHLEN];
        char udevpath[MAXPATHLEN];
        uint64_t wholedisk;
@@ -1110,7 +1110,7 @@ is_device_in_use(nvlist_t *config, nvlist_t *nv, boolean_t force,
 {
        nvlist_t **child;
        uint_t c, children;
-       char *type, *path;
+       const char *type, *path;
        int ret = 0;
        char buf[MAXPATHLEN];
        uint64_t wholedisk = B_FALSE;
@@ -1761,7 +1761,7 @@ split_mirror_vdev(zpool_handle_t *zhp, char *newname, nvlist_t *props,
                verify(nvlist_lookup_nvlist_array(newroot,
                    ZPOOL_CONFIG_CHILDREN, &child, &children) == 0);
                for (c = 0; c < children; c++) {
-                       char *path;
+                       const char *path;
                        const char *type;
                        int min, max;
 
index 73a9bedb8164c11a713b456af5deb21272523722..80d08485891ec96f0cbc2db84fb5fb198d3c123c 100644 (file)
@@ -264,7 +264,7 @@ get_vdev_name(nvlist_t *nvroot, const char *parent_name)
        static char vdev_name[256];
        uint64_t vdev_id = 0;
 
-       char *vdev_type = (char *)"unknown";
+       const char *vdev_type = "unknown";
        (void) nvlist_lookup_string(nvroot, ZPOOL_CONFIG_TYPE, &vdev_type);
 
        if (nvlist_lookup_uint64(
@@ -299,9 +299,9 @@ get_vdev_desc(nvlist_t *nvroot, const char *parent_name)
        char vdev_value[MAXPATHLEN];
        char *s, *t;
 
-       char *vdev_type = (char *)"unknown";
+       const char *vdev_type = "unknown";
        uint64_t vdev_id = UINT64_MAX;
-       char *vdev_path = NULL;
+       const char *vdev_path = NULL;
        (void) nvlist_lookup_string(nvroot, ZPOOL_CONFIG_TYPE, &vdev_type);
        (void) nvlist_lookup_uint64(nvroot, ZPOOL_CONFIG_ID, &vdev_id);
        (void) nvlist_lookup_string(nvroot, ZPOOL_CONFIG_PATH, &vdev_path);
index 738afaec7ec1f7d329fea656497ab12b11fe5f09..09b224b4de5abdf562c5ef19f4afdb7d12832b83 100644 (file)
@@ -42,9 +42,10 @@ extern "C" {
  * are all imported from <sys/nvpair.h> included above.
  */
 
-_LIBNVPAIR_H int nvpair_value_match(nvpair_t *, int, char *, char **);
-_LIBNVPAIR_H int nvpair_value_match_regex(nvpair_t *, int, char *, regex_t *,
-    char **);
+_LIBNVPAIR_H int nvpair_value_match(nvpair_t *, int, const char *,
+    const char **);
+_LIBNVPAIR_H int nvpair_value_match_regex(nvpair_t *, int, const char *,
+    regex_t *, const char **);
 
 _LIBNVPAIR_H void nvlist_print(FILE *, nvlist_t *);
 _LIBNVPAIR_H int nvlist_print_json(FILE *, nvlist_t *);
@@ -156,7 +157,7 @@ NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint32, uint32_t);
 NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_int64, int64_t);
 NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint64, uint64_t);
 NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_double, double);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_string, char *);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_string, const char *);
 NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_hrtime, hrtime_t);
 NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_nvlist, nvlist_t *);
 
@@ -185,7 +186,7 @@ NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int32_array, int32_t *);
 NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint32_array, uint32_t *);
 NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int64_array, int64_t *);
 NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint64_array, uint64_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_string_array, char **);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_string_array, const char **);
 NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_nvlist_array, nvlist_t **);
 
 #undef NVLIST_PRINTCTL_AVDECL  /* was just for "clarity" above */
index 05b4dfe35c7687a5c26f416823777712b5f07d70..4f8eeb72ad956c7832a8da41224de58da0b397f4 100644 (file)
@@ -533,7 +533,7 @@ _LIBZFS_H int zfs_prop_get_written(zfs_handle_t *zhp, const char *propname,
     char *propbuf, int proplen, boolean_t literal);
 _LIBZFS_H int zfs_prop_get_feature(zfs_handle_t *zhp, const char *propname,
     char *buf, size_t len);
-_LIBZFS_H uint64_t getprop_uint64(zfs_handle_t *, zfs_prop_t, char **);
+_LIBZFS_H uint64_t getprop_uint64(zfs_handle_t *, zfs_prop_t, const char **);
 _LIBZFS_H uint64_t zfs_prop_get_int(zfs_handle_t *, zfs_prop_t);
 _LIBZFS_H int zfs_prop_inherit(zfs_handle_t *, const char *, boolean_t);
 _LIBZFS_H const char *zfs_prop_values(zfs_prop_t);
index 538c73610a59ed13fe9cb058edb079cfa259865f..3390ca1089f810e0d6547c5175b9f0d981309a27 100644 (file)
@@ -79,8 +79,8 @@ typedef struct dmu_recv_cookie {
        objlist_t *drc_ignore_objlist;
 } dmu_recv_cookie_t;
 
-int dmu_recv_begin(char *, char *, dmu_replay_record_t *,
-    boolean_t, boolean_t, boolean_t, nvlist_t *, nvlist_t *, char *,
+int dmu_recv_begin(const char *, const char *, dmu_replay_record_t *,
+    boolean_t, boolean_t, boolean_t, nvlist_t *, nvlist_t *, const char *,
     dmu_recv_cookie_t *, zfs_file_t *, offset_t *);
 int dmu_recv_stream(dmu_recv_cookie_t *, offset_t *);
 int dmu_recv_end(dmu_recv_cookie_t *, void *);
index 09b3a81f7c1994f9c685dfce0aacb89379f6a9c8..33eda9be10e8e70e708c6e14eccf646553fee30e 100644 (file)
@@ -232,7 +232,8 @@ _SYS_NVPAIR_H int nvlist_lookup_int64(const nvlist_t *, const char *,
     int64_t *);
 _SYS_NVPAIR_H int nvlist_lookup_uint64(const nvlist_t *, const char *,
     uint64_t *);
-_SYS_NVPAIR_H int nvlist_lookup_string(nvlist_t *, const char *, char **);
+_SYS_NVPAIR_H int nvlist_lookup_string(const nvlist_t *, const char *,
+    const char **);
 _SYS_NVPAIR_H int nvlist_lookup_nvlist(nvlist_t *, const char *, nvlist_t **);
 _SYS_NVPAIR_H int nvlist_lookup_boolean_array(nvlist_t *, const char *,
     boolean_t **, uint_t *);
@@ -267,14 +268,14 @@ _SYS_NVPAIR_H int nvlist_lookup_double(const nvlist_t *, const char *,
 
 _SYS_NVPAIR_H int nvlist_lookup_nvpair(nvlist_t *, const char *, nvpair_t **);
 _SYS_NVPAIR_H int nvlist_lookup_nvpair_embedded_index(nvlist_t *, const char *,
-    nvpair_t **, int *, char **);
+    nvpair_t **, int *, const char **);
 _SYS_NVPAIR_H boolean_t nvlist_exists(const nvlist_t *, const char *);
 _SYS_NVPAIR_H boolean_t nvlist_empty(const nvlist_t *);
 
 /* processing nvpair */
 _SYS_NVPAIR_H nvpair_t *nvlist_next_nvpair(nvlist_t *, const nvpair_t *);
 _SYS_NVPAIR_H nvpair_t *nvlist_prev_nvpair(nvlist_t *, const nvpair_t *);
-_SYS_NVPAIR_H char *nvpair_name(const nvpair_t *);
+_SYS_NVPAIR_H const char *nvpair_name(const nvpair_t *);
 _SYS_NVPAIR_H data_type_t nvpair_type(const nvpair_t *);
 _SYS_NVPAIR_H int nvpair_type_is_array(const nvpair_t *);
 _SYS_NVPAIR_H int nvpair_value_boolean_value(const nvpair_t *, boolean_t *);
@@ -287,7 +288,7 @@ _SYS_NVPAIR_H int nvpair_value_int32(const nvpair_t *, int32_t *);
 _SYS_NVPAIR_H int nvpair_value_uint32(const nvpair_t *, uint32_t *);
 _SYS_NVPAIR_H int nvpair_value_int64(const nvpair_t *, int64_t *);
 _SYS_NVPAIR_H int nvpair_value_uint64(const nvpair_t *, uint64_t *);
-_SYS_NVPAIR_H int nvpair_value_string(nvpair_t *, char **);
+_SYS_NVPAIR_H int nvpair_value_string(const nvpair_t *, const char **);
 _SYS_NVPAIR_H int nvpair_value_nvlist(nvpair_t *, nvlist_t **);
 _SYS_NVPAIR_H int nvpair_value_boolean_array(nvpair_t *, boolean_t **,
     uint_t *);
@@ -300,7 +301,8 @@ _SYS_NVPAIR_H int nvpair_value_int32_array(nvpair_t *, int32_t **, uint_t *);
 _SYS_NVPAIR_H int nvpair_value_uint32_array(nvpair_t *, uint32_t **, uint_t *);
 _SYS_NVPAIR_H int nvpair_value_int64_array(nvpair_t *, int64_t **, uint_t *);
 _SYS_NVPAIR_H int nvpair_value_uint64_array(nvpair_t *, uint64_t **, uint_t *);
-_SYS_NVPAIR_H int nvpair_value_string_array(nvpair_t *, char ***, uint_t *);
+_SYS_NVPAIR_H int nvpair_value_string_array(nvpair_t *, const char ***,
+    uint_t *);
 _SYS_NVPAIR_H int nvpair_value_nvlist_array(nvpair_t *, nvlist_t ***, uint_t *);
 _SYS_NVPAIR_H int nvpair_value_hrtime(nvpair_t *, hrtime_t *);
 #if !defined(_KERNEL) && !defined(_STANDALONE)
@@ -373,7 +375,8 @@ _SYS_NVPAIR_H uint8_t fnvlist_lookup_uint8(const nvlist_t *, const char *);
 _SYS_NVPAIR_H uint16_t fnvlist_lookup_uint16(const nvlist_t *, const char *);
 _SYS_NVPAIR_H uint32_t fnvlist_lookup_uint32(const nvlist_t *, const char *);
 _SYS_NVPAIR_H uint64_t fnvlist_lookup_uint64(const nvlist_t *, const char *);
-_SYS_NVPAIR_H char *fnvlist_lookup_string(nvlist_t *, const char *);
+_SYS_NVPAIR_H const char *fnvlist_lookup_string(const nvlist_t *,
+    const char *);
 _SYS_NVPAIR_H nvlist_t *fnvlist_lookup_nvlist(nvlist_t *, const char *);
 _SYS_NVPAIR_H boolean_t *fnvlist_lookup_boolean_array(nvlist_t *, const char *,
     uint_t *);
@@ -406,7 +409,7 @@ _SYS_NVPAIR_H uint8_t fnvpair_value_uint8(const nvpair_t *nvp);
 _SYS_NVPAIR_H uint16_t fnvpair_value_uint16(const nvpair_t *nvp);
 _SYS_NVPAIR_H uint32_t fnvpair_value_uint32(const nvpair_t *nvp);
 _SYS_NVPAIR_H uint64_t fnvpair_value_uint64(const nvpair_t *nvp);
-_SYS_NVPAIR_H char *fnvpair_value_string(nvpair_t *nvp);
+_SYS_NVPAIR_H const char *fnvpair_value_string(const nvpair_t *nvp);
 _SYS_NVPAIR_H nvlist_t *fnvpair_value_nvlist(nvpair_t *nvp);
 
 #ifdef __cplusplus
index 5900a655157185f552732f24a0f12459927594ee..ef92f3e9bda63b605ebffb8655017449b9878a1d 100644 (file)
     <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='160' id='664ac0b7'>
       <subrange length='20' type-id='7359adad' id='fdca39cf'/>
     </array-type-def>
+    <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='infinite' id='e84913bd'>
+      <subrange length='infinite' type-id='7359adad' id='031f2035'/>
+    </array-type-def>
     <class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='a4036571'/>
     <class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='010ae0b9'/>
     <class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='79bd3751'/>
       <data-member access='public' layout-offset-in-bits='96'>
         <var-decl name='nvp_type' type-id='8d0687d2' visibility='default'/>
       </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='nvp_name' type-id='e84913bd' visibility='default'/>
+      </data-member>
     </class-decl>
     <typedef-decl name='nvpair_t' type-id='1c34e459' id='57928edf'/>
     <class-decl name='nvlist' size-in-bits='192' is-struct='yes' visibility='default' id='ac266fd9'>
     </class-decl>
     <class-decl name='__anonymous_struct__12' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f7e'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='op' type-id='c0d0f877' visibility='default'/>
+        <var-decl name='op' type-id='bfc48fe4' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='arg' type-id='eaa32e2f' visibility='default'/>
     </class-decl>
     <class-decl name='__anonymous_struct__25' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' id='e7f43f8b'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='op' type-id='de20bf07' visibility='default'/>
+        <var-decl name='op' type-id='337f4a72' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
         <var-decl name='arg' type-id='eaa32e2f' visibility='default'/>
     <pointer-type-def type-id='c19b74c3' size-in-bits='64' id='37e3bd22'/>
     <pointer-type-def type-id='37e3bd22' size-in-bits='64' id='03829398'/>
     <pointer-type-def type-id='a84c031d' size-in-bits='64' id='26a90f95'/>
-    <pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/>
-    <pointer-type-def type-id='9b23c9ad' size-in-bits='64' id='c0563f85'/>
     <qualified-type-def type-id='a84c031d' const='yes' id='9b45d938'/>
     <pointer-type-def type-id='9b45d938' size-in-bits='64' id='80f4b756'/>
     <qualified-type-def type-id='80f4b756' restrict='yes' id='9d26089a'/>
+    <pointer-type-def type-id='80f4b756' size-in-bits='64' id='7d3cd834'/>
+    <pointer-type-def type-id='7d3cd834' size-in-bits='64' id='44c8373a'/>
     <qualified-type-def type-id='57928edf' const='yes' id='642ee20f'/>
     <pointer-type-def type-id='642ee20f' size-in-bits='64' id='dace003f'/>
     <qualified-type-def type-id='aca3bac8' const='yes' id='2498fd78'/>
     <pointer-type-def type-id='a0eb0f08' size-in-bits='64' id='7408d286'/>
     <pointer-type-def type-id='cebdd548' size-in-bits='64' id='e379e62d'/>
     <pointer-type-def type-id='9f88f76e' size-in-bits='64' id='7ef0e988'/>
-    <pointer-type-def type-id='c5bb1a2b' size-in-bits='64' id='c0d0f877'/>
-    <pointer-type-def type-id='573fea1b' size-in-bits='64' id='de20bf07'/>
+    <pointer-type-def type-id='889f3b42' size-in-bits='64' id='bfc48fe4'/>
+    <pointer-type-def type-id='49055dd8' size-in-bits='64' id='337f4a72'/>
     <pointer-type-def type-id='70284cc6' size-in-bits='64' id='3be4d568'/>
     <pointer-type-def type-id='700c3bca' size-in-bits='64' id='6d994334'/>
     <pointer-type-def type-id='18ac1860' size-in-bits='64' id='506ab59a'/>
     <pointer-type-def type-id='3bd73b0c' size-in-bits='64' id='7e85a9b6'/>
     <pointer-type-def type-id='0d445e26' size-in-bits='64' id='330cc0d0'/>
     <pointer-type-def type-id='e4b89f30' size-in-bits='64' id='ed8aa8ba'/>
-    <pointer-type-def type-id='be7f4941' size-in-bits='64' id='2809de35'/>
-    <pointer-type-def type-id='fe5ae69d' size-in-bits='64' id='90d5edb9'/>
+    <pointer-type-def type-id='78e3bec8' size-in-bits='64' id='b38a1022'/>
+    <pointer-type-def type-id='a5193bb2' size-in-bits='64' id='6263eda4'/>
     <pointer-type-def type-id='2783af3c' size-in-bits='64' id='e44553b6'/>
     <pointer-type-def type-id='33c6e3d8' size-in-bits='64' id='1263777a'/>
     <pointer-type-def type-id='dadb9eca' size-in-bits='64' id='cbda43ac'/>
     </function-decl>
     <function-decl name='nvpair_name' mangled-name='nvpair_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvpair_name'>
       <parameter type-id='dace003f'/>
-      <return type-id='26a90f95'/>
+      <return type-id='80f4b756'/>
     </function-decl>
     <function-decl name='nvpair_type' mangled-name='nvpair_type' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvpair_type'>
       <parameter type-id='dace003f'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvpair_value_string' mangled-name='nvpair_value_string' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvpair_value_string'>
-      <parameter type-id='3fa542f0'/>
-      <parameter type-id='9b23c9ad'/>
+      <parameter type-id='dace003f'/>
+      <parameter type-id='7d3cd834'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvpair_value_nvlist' mangled-name='nvpair_value_nvlist' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvpair_value_nvlist'>
     </function-decl>
     <function-decl name='nvpair_value_string_array' mangled-name='nvpair_value_string_array' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvpair_value_string_array'>
       <parameter type-id='3fa542f0'/>
-      <parameter type-id='c0563f85'/>
+      <parameter type-id='44c8373a'/>
       <parameter type-id='4dd26a40'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     </function-decl>
     <function-decl name='nvlist_prtctlop_string' mangled-name='nvlist_prtctlop_string' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvlist_prtctlop_string'>
       <parameter type-id='b0c1ff8d' name='pctl'/>
-      <parameter type-id='2809de35' name='func'/>
+      <parameter type-id='b38a1022' name='func'/>
       <parameter type-id='eaa32e2f' name='private'/>
       <return type-id='48b5725f'/>
     </function-decl>
     </function-decl>
     <function-decl name='nvlist_prtctlop_string_array' mangled-name='nvlist_prtctlop_string_array' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvlist_prtctlop_string_array'>
       <parameter type-id='b0c1ff8d' name='pctl'/>
-      <parameter type-id='90d5edb9' name='func'/>
+      <parameter type-id='6263eda4' name='func'/>
       <parameter type-id='eaa32e2f' name='private'/>
       <return type-id='48b5725f'/>
     </function-decl>
     <function-decl name='nvpair_value_match_regex' mangled-name='nvpair_value_match_regex' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvpair_value_match_regex'>
       <parameter type-id='3fa542f0' name='nvp'/>
       <parameter type-id='95e97e5e' name='ai'/>
-      <parameter type-id='26a90f95' name='value'/>
+      <parameter type-id='80f4b756' name='value'/>
       <parameter type-id='d33f11cb' name='value_regex'/>
-      <parameter type-id='9b23c9ad' name='ep'/>
+      <parameter type-id='7d3cd834' name='ep'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvpair_value_match' mangled-name='nvpair_value_match' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvpair_value_match'>
       <parameter type-id='3fa542f0' name='nvp'/>
       <parameter type-id='95e97e5e' name='ai'/>
-      <parameter type-id='26a90f95' name='value'/>
-      <parameter type-id='9b23c9ad' name='ep'/>
+      <parameter type-id='80f4b756' name='value'/>
+      <parameter type-id='7d3cd834' name='ep'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-type size-in-bits='64' id='9f88f76e'>
       <parameter type-id='3502e3ff'/>
       <return type-id='95e97e5e'/>
     </function-type>
-    <function-type size-in-bits='64' id='c5bb1a2b'>
+    <function-type size-in-bits='64' id='889f3b42'>
       <parameter type-id='196db161'/>
       <parameter type-id='eaa32e2f'/>
       <parameter type-id='5ce45b60'/>
       <parameter type-id='80f4b756'/>
-      <parameter type-id='26a90f95'/>
+      <parameter type-id='80f4b756'/>
       <return type-id='95e97e5e'/>
     </function-type>
-    <function-type size-in-bits='64' id='573fea1b'>
+    <function-type size-in-bits='64' id='49055dd8'>
       <parameter type-id='196db161'/>
       <parameter type-id='eaa32e2f'/>
       <parameter type-id='5ce45b60'/>
       <parameter type-id='80f4b756'/>
-      <parameter type-id='9b23c9ad'/>
+      <parameter type-id='7d3cd834'/>
       <parameter type-id='3502e3ff'/>
       <return type-id='95e97e5e'/>
     </function-type>
       <parameter type-id='3502e3ff'/>
       <return type-id='95e97e5e'/>
     </function-type>
-    <function-type size-in-bits='64' id='be7f4941'>
+    <function-type size-in-bits='64' id='78e3bec8'>
       <parameter type-id='b0c1ff8d'/>
       <parameter type-id='eaa32e2f'/>
       <parameter type-id='5ce45b60'/>
       <parameter type-id='80f4b756'/>
-      <parameter type-id='26a90f95'/>
+      <parameter type-id='80f4b756'/>
       <return type-id='95e97e5e'/>
     </function-type>
-    <function-type size-in-bits='64' id='fe5ae69d'>
+    <function-type size-in-bits='64' id='a5193bb2'>
       <parameter type-id='b0c1ff8d'/>
       <parameter type-id='eaa32e2f'/>
       <parameter type-id='5ce45b60'/>
       <parameter type-id='80f4b756'/>
-      <parameter type-id='9b23c9ad'/>
+      <parameter type-id='7d3cd834'/>
       <parameter type-id='3502e3ff'/>
       <return type-id='95e97e5e'/>
     </function-type>
       <return type-id='9c313c2d'/>
     </function-decl>
     <function-decl name='fnvpair_value_string' mangled-name='fnvpair_value_string' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fnvpair_value_string'>
-      <parameter type-id='3fa542f0'/>
-      <return type-id='26a90f95'/>
+      <parameter type-id='dace003f'/>
+      <return type-id='80f4b756'/>
     </function-decl>
     <function-decl name='fnvpair_value_nvlist' mangled-name='fnvpair_value_nvlist' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fnvpair_value_nvlist'>
       <parameter type-id='3fa542f0'/>
       <return type-id='9c313c2d'/>
     </function-decl>
     <function-decl name='fnvlist_lookup_string' mangled-name='fnvlist_lookup_string' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fnvlist_lookup_string'>
-      <parameter type-id='5ce45b60' name='nvl'/>
+      <parameter type-id='22cce67b' name='nvl'/>
       <parameter type-id='80f4b756' name='name'/>
-      <return type-id='26a90f95'/>
+      <return type-id='80f4b756'/>
     </function-decl>
     <function-decl name='fnvlist_lookup_nvlist' mangled-name='fnvlist_lookup_nvlist' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fnvlist_lookup_nvlist'>
       <parameter type-id='5ce45b60' name='nvl'/>
     <typedef-decl name='u_quad_t' type-id='5f3d50a6' id='bd226ac0'/>
     <pointer-type-def type-id='bc407f0e' size-in-bits='64' id='17fd1621'/>
     <pointer-type-def type-id='755707df' size-in-bits='64' id='812c6697'/>
+    <pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/>
     <qualified-type-def type-id='9b23c9ad' restrict='yes' id='8c85230f'/>
+    <pointer-type-def type-id='9b23c9ad' size-in-bits='64' id='c0563f85'/>
     <qualified-type-def type-id='c19b74c3' const='yes' id='12373e33'/>
     <pointer-type-def type-id='12373e33' size-in-bits='64' id='c5f6c15b'/>
     <qualified-type-def type-id='80f4b756' const='yes' id='b99c00c9'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvlist_lookup_string' mangled-name='nvlist_lookup_string' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvlist_lookup_string'>
-      <parameter type-id='5ce45b60' name='nvl'/>
+      <parameter type-id='22cce67b' name='nvl'/>
       <parameter type-id='80f4b756' name='name'/>
-      <parameter type-id='9b23c9ad' name='val'/>
+      <parameter type-id='7d3cd834' name='val'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvlist_lookup_nvlist' mangled-name='nvlist_lookup_nvlist' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvlist_lookup_nvlist'>
       <parameter type-id='80f4b756' name='name'/>
       <parameter type-id='0b283d2e' name='ret'/>
       <parameter type-id='7292109c' name='ip'/>
-      <parameter type-id='9b23c9ad' name='ep'/>
+      <parameter type-id='7d3cd834' name='ep'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvlist_exists' mangled-name='nvlist_exists' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvlist_exists'>
index a75e7316739f06a60dba35e9f9982972b6033ce8..f19ee707a5aa403ff3493c6992681952b4de36dc 100644 (file)
@@ -70,7 +70,7 @@ struct nvlist_printops {
        DEFINEOP(print_int64, int64_t);
        DEFINEOP(print_uint64, uint64_t);
        DEFINEOP(print_double, double);
-       DEFINEOP(print_string, char *);
+       DEFINEOP(print_string, const char *);
        DEFINEOP(print_hrtime, hrtime_t);
        DEFINEOP(print_nvlist, nvlist_t *);
        DEFINEARROP(print_boolean_array, boolean_t *);
@@ -83,7 +83,7 @@ struct nvlist_printops {
        DEFINEARROP(print_uint32_array, uint32_t *);
        DEFINEARROP(print_int64_array, int64_t *);
        DEFINEARROP(print_uint64_array, uint64_t *);
-       DEFINEARROP(print_string_array, char **);
+       DEFINEARROP(print_string_array, const char **);
        DEFINEARROP(print_nvlist_array, nvlist_t **);
 };
 
@@ -222,7 +222,7 @@ NVLIST_PRTFUNC(uint32, uint32_t, uint32_t, "0x%x")
 NVLIST_PRTFUNC(int64, int64_t, longlong_t, "%lld")
 NVLIST_PRTFUNC(uint64, uint64_t, u_longlong_t, "0x%llx")
 NVLIST_PRTFUNC(double, double, double, "0x%f")
-NVLIST_PRTFUNC(string, char *, char *, "%s")
+NVLIST_PRTFUNC(string, const char *, const char *, "%s")
 NVLIST_PRTFUNC(hrtime, hrtime_t, hrtime_t, "0x%llx")
 #if defined(__GNUC__) && !defined(__clang__) && \
        defined(ZFS_UBSAN_ENABLED) && defined(HAVE_FORMAT_OVERFLOW)
@@ -266,7 +266,7 @@ NVLIST_ARRPRTFUNC(int32_array, int32_t, int32_t, "%d")
 NVLIST_ARRPRTFUNC(uint32_array, uint32_t, uint32_t, "0x%x")
 NVLIST_ARRPRTFUNC(int64_array, int64_t, longlong_t, "%lld")
 NVLIST_ARRPRTFUNC(uint64_array, uint64_t, u_longlong_t, "0x%llx")
-NVLIST_ARRPRTFUNC(string_array, char *, char *, "%s")
+NVLIST_ARRPRTFUNC(string_array, const char *, const char *, "%s")
 
 static int
 nvprint_nvlist(nvlist_prtctl_t pctl, void *private,
@@ -398,13 +398,13 @@ nvlist_prtctl_dofmt(nvlist_prtctl_t pctl, enum nvlist_prtctl_fmt which, ...)
 {
        FILE *fp = pctl->nvprt_fp;
        va_list ap;
-       char *name;
+       const char *name;
 
        va_start(ap, which);
 
        switch (which) {
        case NVLIST_FMT_MEMBER_NAME:
-               name = va_arg(ap, char *);
+               name = va_arg(ap, const char *);
                (void) fprintf(fp, pctl->nvprt_nmfmt, name);
                break;
 
@@ -453,7 +453,7 @@ NVLIST_PRINTCTL_REPLACE(uint32, uint32_t)
 NVLIST_PRINTCTL_REPLACE(int64, int64_t)
 NVLIST_PRINTCTL_REPLACE(uint64, uint64_t)
 NVLIST_PRINTCTL_REPLACE(double, double)
-NVLIST_PRINTCTL_REPLACE(string, char *)
+NVLIST_PRINTCTL_REPLACE(string, const char *)
 NVLIST_PRINTCTL_REPLACE(hrtime, hrtime_t)
 NVLIST_PRINTCTL_REPLACE(nvlist, nvlist_t *)
 
@@ -477,7 +477,7 @@ NVLIST_PRINTCTL_AREPLACE(int32_array, int32_t *)
 NVLIST_PRINTCTL_AREPLACE(uint32_array, uint32_t *)
 NVLIST_PRINTCTL_AREPLACE(int64_array, int64_t *)
 NVLIST_PRINTCTL_AREPLACE(uint64_array, uint64_t *)
-NVLIST_PRINTCTL_AREPLACE(string_array, char **)
+NVLIST_PRINTCTL_AREPLACE(string_array, const char **)
 NVLIST_PRINTCTL_AREPLACE(nvlist_array, nvlist_t **)
 
 /*
@@ -580,7 +580,7 @@ static void
 nvlist_print_with_indent(nvlist_t *nvl, nvlist_prtctl_t pctl)
 {
        FILE *fp = pctl->nvprt_fp;
-       char *name;
+       const char *name;
        uint_t nelem;
        nvpair_t *nvp;
 
@@ -670,7 +670,7 @@ nvlist_print_with_indent(nvlist_t *nvl, nvlist_prtctl_t pctl)
                        break;
                }
                case DATA_TYPE_STRING: {
-                       char *val;
+                       const char *val;
                        (void) nvpair_value_string(nvp, &val);
                        RENDER(pctl, string, nvl, name, val);
                        break;
@@ -736,7 +736,7 @@ nvlist_print_with_indent(nvlist_t *nvl, nvlist_prtctl_t pctl)
                        break;
                }
                case DATA_TYPE_STRING_ARRAY: {
-                       char **val;
+                       const char **val;
                        (void) nvpair_value_string_array(nvp, &val, &nelem);
                        ARENDER(pctl, string_array, nvl, name, val, nelem);
                        break;
@@ -866,7 +866,7 @@ dump_nvlist(nvlist_t *list, int indent)
                        break;
 
                case DATA_TYPE_STRING:
-                       NVP(elem, string, char *, char *, "'%s'");
+                       NVP(elem, string, const char *, const char *, "'%s'");
                        break;
 
                case DATA_TYPE_BYTE_ARRAY:
@@ -907,7 +907,8 @@ dump_nvlist(nvlist_t *list, int indent)
                        break;
 
                case DATA_TYPE_STRING_ARRAY:
-                       NVPA(elem, string_array, char *, char *, "'%s'");
+                       NVPA(elem, string_array, const char *, const char *,
+                           "'%s'");
                        break;
 
                case DATA_TYPE_NVLIST:
@@ -961,11 +962,11 @@ dump_nvlist(nvlist_t *list, int indent)
  */
 int
 nvpair_value_match_regex(nvpair_t *nvp, int ai,
-    char *value, regex_t *value_regex, char **ep)
+    const char *value, regex_t *value_regex, const char **ep)
 {
-       char    *evalue;
-       uint_t  a_len;
-       int     sr;
+       const char      *evalue;
+       uint_t          a_len;
+       int             sr;
 
        if (ep)
                *ep = NULL;
@@ -993,7 +994,7 @@ nvpair_value_match_regex(nvpair_t *nvp, int ai,
        sr = EOF;
        switch (nvpair_type(nvp)) {
        case DATA_TYPE_STRING: {
-               char    *val;
+               const char *val;
 
                /* check string value for match */
                if (nvpair_value_string(nvp, &val) == 0) {
@@ -1009,7 +1010,7 @@ nvpair_value_match_regex(nvpair_t *nvp, int ai,
                break;
        }
        case DATA_TYPE_STRING_ARRAY: {
-               char **val_array;
+               const char **val_array;
 
                /* check indexed string value of array for match */
                if ((nvpair_value_string_array(nvp, &val_array, &a_len) == 0) &&
@@ -1285,7 +1286,7 @@ nvpair_value_match_regex(nvpair_t *nvp, int ai,
 }
 
 int
-nvpair_value_match(nvpair_t *nvp, int ai, char *value, char **ep)
+nvpair_value_match(nvpair_t *nvp, int ai, const char *value, const char **ep)
 {
        return (nvpair_value_match_regex(nvp, ai, value, NULL, ep));
 }
index 19acea8f5094aa513e156a90cdd49ab61a1914e6..b8029dd4d27193a9c345c82b82540bdce883d85c 100644 (file)
@@ -134,7 +134,7 @@ nvlist_print_json(FILE *fp, nvlist_t *nvl)
 
                switch (type) {
                case DATA_TYPE_STRING: {
-                       char *string = fnvpair_value_string(curr);
+                       const char *string = fnvpair_value_string(curr);
                        if (nvlist_print_json_string(fp, string) == -1)
                                return (-1);
                        break;
@@ -220,7 +220,7 @@ nvlist_print_json(FILE *fp, nvlist_t *nvl)
                }
 
                case DATA_TYPE_STRING_ARRAY: {
-                       char **val;
+                       const char **val;
                        uint_t valsz, i;
                        VERIFY0(nvpair_value_string_array(curr, &val, &valsz));
                        FPRINTF(fp, "[");
index 9d3c0379da18e16ebb0835137637a189ccb939ac..99e1b8cdf695b3e5f44fc4b1ce816c0a6ffea78a 100644 (file)
     <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='65536' id='163f6aa5'>
       <subrange length='8192' type-id='7359adad' id='c88f397d'/>
     </array-type-def>
+    <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='infinite' id='e84913bd'>
+      <subrange length='infinite' type-id='7359adad' id='031f2035'/>
+    </array-type-def>
     <array-type-def dimensions='1' type-id='9c313c2d' size-in-bits='128' id='c1c22e6c'>
       <subrange length='2' type-id='7359adad' id='52efc4ef'/>
     </array-type-def>
       <data-member access='public' layout-offset-in-bits='96'>
         <var-decl name='nvp_type' type-id='8d0687d2' visibility='default'/>
       </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='nvp_name' type-id='e84913bd' visibility='default'/>
+      </data-member>
     </class-decl>
     <typedef-decl name='nvpair_t' type-id='1c34e459' id='57928edf'/>
     <class-decl name='drr_begin' size-in-bits='2432' is-struct='yes' visibility='default' id='09fcdc01'>
     </function-decl>
     <function-decl name='nvpair_name' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='dace003f'/>
-      <return type-id='26a90f95'/>
+      <return type-id='80f4b756'/>
     </function-decl>
     <function-decl name='fnvpair_value_nvlist' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='3fa542f0'/>
     <pointer-type-def type-id='79bd3751' size-in-bits='64' id='c65a1f29'/>
     <qualified-type-def type-id='9b23c9ad' restrict='yes' id='8c85230f'/>
     <qualified-type-def type-id='80f4b756' restrict='yes' id='9d26089a'/>
+    <pointer-type-def type-id='80f4b756' size-in-bits='64' id='7d3cd834'/>
     <qualified-type-def type-id='aca3bac8' const='yes' id='2498fd78'/>
     <pointer-type-def type-id='2498fd78' size-in-bits='64' id='eed6c816'/>
     <qualified-type-def type-id='eed6c816' restrict='yes' id='a431a9da'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvlist_lookup_string' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='5ce45b60'/>
+      <parameter type-id='22cce67b'/>
       <parameter type-id='80f4b756'/>
-      <parameter type-id='9b23c9ad'/>
+      <parameter type-id='7d3cd834'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='fnvlist_alloc' visibility='default' binding='global' size-in-bits='64'>
     <pointer-type-def type-id='fba6cb51' size-in-bits='64' id='32adbf30'/>
     <pointer-type-def type-id='f20fbd51' size-in-bits='64' id='a3681dea'/>
     <qualified-type-def type-id='26a90f95' restrict='yes' id='266fe297'/>
-    <pointer-type-def type-id='80f4b756' size-in-bits='64' id='7d3cd834'/>
     <qualified-type-def type-id='56fe4a37' const='yes' id='a75125ce'/>
     <pointer-type-def type-id='a75125ce' size-in-bits='64' id='48bea5ec'/>
     <qualified-type-def type-id='8afd6070' const='yes' id='1d853360'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvpair_value_string' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='3fa542f0'/>
-      <parameter type-id='9b23c9ad'/>
+      <parameter type-id='dace003f'/>
+      <parameter type-id='7d3cd834'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='fnvlist_free' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='9c313c2d'/>
     </function-decl>
     <function-decl name='fnvlist_lookup_string' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='5ce45b60'/>
+      <parameter type-id='22cce67b'/>
       <parameter type-id='80f4b756'/>
-      <return type-id='26a90f95'/>
+      <return type-id='80f4b756'/>
     </function-decl>
     <function-decl name='fnvlist_lookup_nvlist' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='5ce45b60'/>
     <function-decl name='getprop_uint64' mangled-name='getprop_uint64' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getprop_uint64'>
       <parameter type-id='9200a744' name='zhp'/>
       <parameter type-id='58603c44' name='prop'/>
-      <parameter type-id='9b23c9ad' name='source'/>
+      <parameter type-id='7d3cd834' name='source'/>
       <return type-id='9c313c2d'/>
     </function-decl>
     <function-decl name='zfs_prop_get_recvd' mangled-name='zfs_prop_get_recvd' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_prop_get_recvd'>
       <parameter type-id='95e97e5e'/>
       <parameter type-id='2e45de5d'/>
       <parameter type-id='5ce45b60'/>
-      <parameter type-id='9b23c9ad'/>
+      <parameter type-id='7d3cd834'/>
       <parameter type-id='5d6479ae'/>
       <parameter type-id='80f4b756'/>
       <return type-id='95e97e5e'/>
       <return type-id='9da381c4'/>
     </function-decl>
     <function-decl name='fnvpair_value_string' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='3fa542f0'/>
-      <return type-id='26a90f95'/>
+      <parameter type-id='dace003f'/>
+      <return type-id='80f4b756'/>
     </function-decl>
     <function-decl name='zfeature_is_supported' mangled-name='zfeature_is_supported' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfeature_is_supported'>
       <parameter type-id='80f4b756'/>
     <function-decl name='label_paths' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='5507783b'/>
       <parameter type-id='5ce45b60'/>
-      <parameter type-id='9b23c9ad'/>
-      <parameter type-id='9b23c9ad'/>
+      <parameter type-id='7d3cd834'/>
+      <parameter type-id='7d3cd834'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='zutil_alloc' visibility='default' binding='global' size-in-bits='64'>
index e8351b22ff9673b12593c804bd29f984c5584b3d..40059063e21aff7401faccb436328db056256ff2 100644 (file)
@@ -942,7 +942,7 @@ proplist_has_encryption_props(nvlist_t *props)
 {
        int ret;
        uint64_t intval;
-       char *strval;
+       const char *strval;
 
        ret = nvlist_lookup_uint64(props,
            zfs_prop_to_name(ZFS_PROP_ENCRYPTION), &intval);
@@ -1007,7 +1007,7 @@ zfs_crypto_create(libzfs_handle_t *hdl, char *parent_name, nvlist_t *props,
        char errbuf[ERRBUFLEN];
        uint64_t crypt = ZIO_CRYPT_INHERIT, pcrypt = ZIO_CRYPT_INHERIT;
        uint64_t keyformat = ZFS_KEYFORMAT_NONE;
-       char *keylocation = NULL;
+       const char *keylocation = NULL;
        zfs_handle_t *pzhp = NULL;
        uint8_t *wkeydata = NULL;
        uint_t wkeylen = 0;
@@ -1595,7 +1595,7 @@ zfs_crypto_rewrap(zfs_handle_t *zhp, nvlist_t *raw_props, boolean_t inheritkey)
        uint64_t crypt, pcrypt, keystatus, pkeystatus;
        uint64_t keyformat = ZFS_KEYFORMAT_NONE;
        zfs_handle_t *pzhp = NULL;
-       char *keylocation = NULL;
+       const char *keylocation = NULL;
        char origin_name[MAXNAMELEN];
        char prop_keylocation[MAXNAMELEN];
        char parent_name[ZFS_MAX_DATASET_NAME_LEN];
@@ -1705,7 +1705,7 @@ zfs_crypto_rewrap(zfs_handle_t *zhp, nvlist_t *raw_props, boolean_t inheritkey)
 
                        /* default to prompt if no keylocation is specified */
                        if (keylocation == NULL) {
-                               keylocation = (char *)"prompt";
+                               keylocation = "prompt";
                                ret = nvlist_add_string(props,
                                    zfs_prop_to_name(ZFS_PROP_KEYLOCATION),
                                    keylocation);
index 9ecb1ac5c6fb351d6ffedbbb0a4602b679fc85d9..8fa36fa95a1705367e2ce601cefe20ca1c605ede 100644 (file)
@@ -1029,7 +1029,7 @@ zfs_valid_proplist(libzfs_handle_t *hdl, zfs_type_t type, nvlist_t *nvl,
 {
        nvpair_t *elem;
        uint64_t intval;
-       char *strval;
+       const char *strval;
        zfs_prop_t prop;
        nvlist_t *ret;
        int chosen_normal = -1;
@@ -2065,7 +2065,7 @@ error:
  * extract them appropriately.
  */
 uint64_t
-getprop_uint64(zfs_handle_t *zhp, zfs_prop_t prop, char **source)
+getprop_uint64(zfs_handle_t *zhp, zfs_prop_t prop, const char **source)
 {
        nvlist_t *nv;
        uint64_t value;
@@ -2079,14 +2079,14 @@ getprop_uint64(zfs_handle_t *zhp, zfs_prop_t prop, char **source)
                verify(!zhp->zfs_props_table ||
                    zhp->zfs_props_table[prop] == B_TRUE);
                value = zfs_prop_default_numeric(prop);
-               *source = (char *)"";
+               *source = "";
        }
 
        return (value);
 }
 
 static const char *
-getprop_string(zfs_handle_t *zhp, zfs_prop_t prop, char **source)
+getprop_string(zfs_handle_t *zhp, zfs_prop_t prop, const char **source)
 {
        nvlist_t *nv;
        const char *value;
@@ -2100,7 +2100,7 @@ getprop_string(zfs_handle_t *zhp, zfs_prop_t prop, char **source)
                verify(!zhp->zfs_props_table ||
                    zhp->zfs_props_table[prop] == B_TRUE);
                value = zfs_prop_default_string(prop);
-               *source = (char *)"";
+               *source = "";
        }
 
        return (value);
@@ -2138,7 +2138,7 @@ zfs_unset_recvd_props_mode(zfs_handle_t *zhp, uintptr_t *cookie)
  */
 static int
 get_numeric_property(zfs_handle_t *zhp, zfs_prop_t prop, zprop_source_t *src,
-    char **source, uint64_t *val)
+    const char **source, uint64_t *val)
 {
        zfs_cmd_t zc = {"\0"};
        nvlist_t *zplprops = NULL;
@@ -2370,7 +2370,7 @@ get_numeric_property(zfs_handle_t *zhp, zfs_prop_t prop, zprop_source_t *src,
  * Calculate the source type, given the raw source string.
  */
 static void
-get_source(zfs_handle_t *zhp, zprop_source_t *srctype, char *source,
+get_source(zfs_handle_t *zhp, zprop_source_t *srctype, const char *source,
     char *statbuf, size_t statlen)
 {
        if (statbuf == NULL ||
@@ -2418,7 +2418,7 @@ zfs_prop_get_recvd(zfs_handle_t *zhp, const char *propname, char *propbuf,
                zfs_unset_recvd_props_mode(zhp, &cookie);
        } else {
                nvlist_t *propval;
-               char *recvdval;
+               const char *recvdval;
                if (nvlist_lookup_nvlist(zhp->zfs_recvd_props,
                    propname, &propval) != 0)
                        return (-1);
@@ -2620,7 +2620,7 @@ zcp_check(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t intval,
                                    (u_longlong_t)intval, (u_longlong_t)ans);
                        }
                } else {
-                       char *str_ans;
+                       const char *str_ans;
                        error = nvlist_lookup_string(retnvl, "value", &str_ans);
                        if (error != 0) {
                                (void) fprintf(stderr, "%s: zcp check error: "
@@ -2652,7 +2652,7 @@ int
 zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen,
     zprop_source_t *src, char *statbuf, size_t statlen, boolean_t literal)
 {
-       char *source = NULL;
+       const char *source = NULL;
        uint64_t val;
        const char *str;
        const char *strval;
@@ -3053,7 +3053,7 @@ zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen,
 uint64_t
 zfs_prop_get_int(zfs_handle_t *zhp, zfs_prop_t prop)
 {
-       char *source;
+       const char *source;
        uint64_t val = 0;
 
        (void) get_numeric_property(zhp, prop, NULL, &source, &val);
@@ -3077,7 +3077,7 @@ int
 zfs_prop_get_numeric(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t *value,
     zprop_source_t *src, char *statbuf, size_t statlen)
 {
-       char *source;
+       const char *source;
 
        /*
         * Check to see if this property applies to our object
@@ -4698,7 +4698,7 @@ zfs_expand_proplist(zfs_handle_t *zhp, zprop_list_t **plp, boolean_t received,
        zprop_list_t **last, **start;
        nvlist_t *userprops, *propval;
        nvpair_t *elem;
-       char *strval;
+       const char *strval;
        char buf[ZFS_MAXPROPLEN];
 
        if (zprop_expand_list(hdl, plp, ZFS_TYPE_DATASET) != 0)
@@ -5484,7 +5484,7 @@ volsize_from_vdevs(zpool_handle_t *zhp, uint64_t nblocks, uint64_t blksize)
        }
 
        for (int v = 0; v < nvdevs; v++) {
-               char *type;
+               const char *type;
                uint64_t nparity, ashift, asize, tsize;
                uint64_t volsize;
 
@@ -5566,7 +5566,7 @@ zvol_volsize_to_reservation(zpool_handle_t *zph, uint64_t volsize,
        uint64_t numdb;
        uint64_t nblocks, volblocksize;
        int ncopies;
-       char *strval;
+       const char *strval;
 
        if (nvlist_lookup_string(props,
            zfs_prop_to_name(ZFS_PROP_COPIES), &strval) == 0)
index 64de6d7b22b4b07ac8b1d45416a5929c936cc027..ef0359f45ea0b0bd857833f386338feb5cfd55b6 100644 (file)
@@ -140,7 +140,7 @@ extern zfs_handle_t *make_dataset_handle_zc(libzfs_handle_t *, zfs_cmd_t *);
 extern zfs_handle_t *make_dataset_simple_handle_zc(zfs_handle_t *, zfs_cmd_t *);
 
 extern int zprop_parse_value(libzfs_handle_t *, nvpair_t *, int, zfs_type_t,
-    nvlist_t *, char **, uint64_t *, const char *);
+    nvlist_t *, const char **, uint64_t *, const char *);
 extern int zprop_expand_list(libzfs_handle_t *hdl, zprop_list_t **plp,
     zfs_type_t type);
 
index 5023f06f7cad6e2abb38d3448fef3defdc0773d4..2a7c5a76a0a60ab973690584f1779356eef77528 100644 (file)
@@ -280,7 +280,7 @@ zpool_in_use(libzfs_handle_t *hdl, int fd, pool_state_t *state, char **namestr,
     boolean_t *inuse)
 {
        nvlist_t *config;
-       char *name = NULL;
+       const char *name = NULL;
        boolean_t ret;
        uint64_t guid = 0, vdev_guid;
        zpool_handle_t *zhp;
index 55cb7a8b5035b6f154590b27b6b68d94887a8083..681fe5b4748dff4b1cb1800b27958ea093b0e1db 100644 (file)
@@ -224,7 +224,7 @@ zfs_iter_bookmarks(zfs_handle_t *zhp, int flags __maybe_unused,
        for (pair = nvlist_next_nvpair(bmarks, NULL);
            pair != NULL; pair = nvlist_next_nvpair(bmarks, pair)) {
                char name[ZFS_MAX_DATASET_NAME_LEN];
-               char *bmark_name;
+               const char *bmark_name;
                nvlist_t *bmark_props;
 
                bmark_name = nvpair_name(pair);
index 8612e082ba3447fe810ce3a030466b1de6602864..024f449baa0b5cd4dc81a0985092ae13d8ee6109 100644 (file)
@@ -291,7 +291,7 @@ static int
 zfs_add_option(zfs_handle_t *zhp, char *options, int len,
     zfs_prop_t prop, const char *on, const char *off)
 {
-       char *source;
+       const char *source;
        uint64_t value;
 
        /* Skip adding duplicate default options */
index ac25ecf9e1aa1b07328524c60eb57a84eac43e1a..f9b7cc004d6b8660f035156b26a3b0a15d082a2c 100644 (file)
@@ -459,9 +459,9 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname,
        nvpair_t *elem;
        nvlist_t *retprops;
        zpool_prop_t prop;
-       char *strval;
+       const char *strval;
        uint64_t intval;
-       char *slash, *check;
+       const char *slash, *check;
        struct stat64 statbuf;
        zpool_handle_t *zhp;
        char report[1024];
@@ -689,12 +689,12 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname,
                                goto error;
                        }
 
-                       *slash = '\0';
+                       *(char *)slash = '\0';
 
                        if (strval[0] != '\0' &&
                            (stat64(strval, &statbuf) != 0 ||
                            !S_ISDIR(statbuf.st_mode))) {
-                               *slash = '/';
+                               *(char *)slash = '/';
                                zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
                                    "'%s' is not a valid directory"),
                                    strval);
@@ -702,7 +702,7 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname,
                                goto error;
                        }
 
-                       *slash = '/';
+                       *(char *)slash = '/';
                        break;
 
                case ZPOOL_PROP_COMPATIBILITY:
@@ -932,7 +932,7 @@ vdev_expand_proplist(zpool_handle_t *zhp, const char *vdevname,
 {
        zprop_list_t *entry;
        char buf[ZFS_MAXPROPLEN];
-       char *strval = NULL;
+       const char *strval = NULL;
        int err = 0;
        nvpair_t *elem = NULL;
        nvlist_t *vprops = NULL;
@@ -1290,7 +1290,7 @@ zpool_has_special_vdev(nvlist_t *nvroot)
        if (nvlist_lookup_nvlist_array(nvroot, ZPOOL_CONFIG_CHILDREN, &child,
            &children) == 0) {
                for (uint_t c = 0; c < children; c++) {
-                       char *bias;
+                       const char *bias;
 
                        if (nvlist_lookup_string(child[c],
                            ZPOOL_CONFIG_ALLOCATION_BIAS, &bias) == 0 &&
@@ -1314,7 +1314,7 @@ zpool_has_draid_vdev(nvlist_t *nvroot)
        if (nvlist_lookup_nvlist_array(nvroot, ZPOOL_CONFIG_CHILDREN,
            &child, &children) == 0) {
                for (uint_t c = 0; c < children; c++) {
-                       char *type;
+                       const char *type;
 
                        if (nvlist_lookup_string(child[c],
                            ZPOOL_CONFIG_TYPE, &type) == 0 &&
@@ -1394,7 +1394,7 @@ zpool_create(libzfs_handle_t *hdl, const char *pool, nvlist_t *nvroot,
 
        if (fsprops) {
                uint64_t zoned;
-               char *zonestr;
+               const char *zonestr;
 
                zoned = ((nvlist_lookup_string(fsprops,
                    zfs_prop_to_name(ZFS_PROP_ZONED), &zonestr) == 0) &&
@@ -1987,7 +1987,7 @@ zpool_print_unsup_feat(nvlist_t *config)
 
        for (nvpair_t *nvp = nvlist_next_nvpair(unsup_feat, NULL);
            nvp != NULL; nvp = nvlist_next_nvpair(unsup_feat, nvp)) {
-               char *desc = fnvpair_value_string(nvp);
+               const char *desc = fnvpair_value_string(nvp);
                if (strlen(desc) > 0)
                        (void) printf("\t%s (%s)\n", nvpair_name(nvp), desc);
                else
@@ -2011,7 +2011,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *config, const char *newname,
        nvlist_t *nvinfo = NULL;
        nvlist_t *missing = NULL;
        const char *thename;
-       char *origname;
+       const char *origname;
        int ret;
        int error = 0;
        char errbuf[ERRBUFLEN];
@@ -2239,7 +2239,7 @@ zpool_translate_vdev_guids(zpool_handle_t *zhp, nvlist_t *vds,
            elem = nvlist_next_nvpair(vds, elem)) {
                boolean_t spare, cache;
 
-               char *vd_path = nvpair_name(elem);
+               const char *vd_path = nvpair_name(elem);
                nvlist_t *tgt = zpool_find_vdev(zhp, vd_path, &spare, &cache,
                    NULL);
 
@@ -2353,7 +2353,7 @@ list_errors:
        for (elem = nvlist_next_nvpair(vd_errlist, NULL); elem != NULL;
            elem = nvlist_next_nvpair(vd_errlist, elem)) {
                int64_t vd_error = xlate_init_err(fnvpair_value_int64(elem));
-               char *path;
+               const char *path;
 
                if (nvlist_lookup_string(guids_to_paths, nvpair_name(elem),
                    &path) != 0)
@@ -2451,7 +2451,7 @@ check_trim_errs(zpool_handle_t *zhp, trimflags_t *trim_flags,
        for (elem = nvlist_next_nvpair(errlist, NULL);
            elem != NULL; elem = nvlist_next_nvpair(errlist, elem)) {
                int64_t vd_error = xlate_trim_err(fnvpair_value_int64(elem));
-               char *path;
+               const char *path;
 
                /*
                 * If only the pool was specified, and it was not a secure
@@ -2634,7 +2634,7 @@ vdev_to_nvlist_iter(nvlist_t *nv, nvlist_t *search, boolean_t *avail_spare,
        nvlist_t **child;
        nvlist_t *ret;
        uint64_t is_log;
-       char *srchkey;
+       const char *srchkey;
        nvpair_t *pair = nvlist_next_nvpair(search, NULL);
 
        /* Nothing to look for */
@@ -2656,7 +2656,7 @@ vdev_to_nvlist_iter(nvlist_t *nv, nvlist_t *search, boolean_t *avail_spare,
                break;
 
        case DATA_TYPE_STRING: {
-               char *srchval, *val;
+               const char *srchval, *val;
 
                srchval = fnvpair_value_string(pair);
                if (nvlist_lookup_string(nv, srchkey, &val) != 0)
@@ -2969,7 +2969,7 @@ zpool_vdev_online(zpool_handle_t *zhp, const char *path, int flags,
                return (zfs_error(hdl, EZFS_ISSPARE, errbuf));
 
 #ifndef __FreeBSD__
-       char *pathname;
+       const char *pathname;
        if ((flags & ZFS_ONLINE_EXPAND ||
            zpool_get_prop_int(zhp, ZPOOL_PROP_AUTOEXPAND, NULL)) &&
            nvlist_lookup_string(tgt, ZPOOL_CONFIG_PATH, &pathname) == 0) {
@@ -3181,7 +3181,8 @@ is_replacing_spare(nvlist_t *search, nvlist_t *tgt, int which)
 
        if (nvlist_lookup_nvlist_array(search, ZPOOL_CONFIG_CHILDREN, &child,
            &children) == 0) {
-               char *type = fnvlist_lookup_string(search, ZPOOL_CONFIG_TYPE);
+               const char *type = fnvlist_lookup_string(search,
+                   ZPOOL_CONFIG_TYPE);
                if ((strcmp(type, VDEV_TYPE_SPARE) == 0 ||
                    strcmp(type, VDEV_TYPE_DRAID_SPARE) == 0) &&
                    children == 2 && child[which] == tgt)
@@ -3484,7 +3485,8 @@ zpool_vdev_split(zpool_handle_t *zhp, char *newname, nvlist_t **newroot,
     nvlist_t *props, splitflags_t flags)
 {
        zfs_cmd_t zc = {"\0"};
-       char errbuf[ERRBUFLEN], *bias;
+       char errbuf[ERRBUFLEN];
+       const char *bias;
        nvlist_t *tree, *config, **child, **newchild, *newconfig = NULL;
        nvlist_t **varray = NULL, *zc_props = NULL;
        uint_t c, children, newchildren, lastlog = 0, vcount, found = 0;
@@ -3542,7 +3544,7 @@ zpool_vdev_split(zpool_handle_t *zhp, char *newname, nvlist_t **newroot,
        for (c = 0; c < children; c++) {
                uint64_t is_log = B_FALSE, is_hole = B_FALSE;
                boolean_t is_special = B_FALSE, is_dedup = B_FALSE;
-               char *type;
+               const char *type;
                nvlist_t **mchild, *vdev;
                uint_t mchildren;
                int entry;
@@ -4015,7 +4017,7 @@ char *
 zpool_vdev_name(libzfs_handle_t *hdl, zpool_handle_t *zhp, nvlist_t *nv,
     int name_flags)
 {
-       char *type, *tpath;
+       const char *type, *tpath;
        const char *path;
        uint64_t value;
        char buf[PATH_BUF_LEN];
index 4b6e06df69bef81be0b2a58f9b027a56839d23b6..23402f86a8ae7e088af2d9bcbad8cb297e46fe0e 100644 (file)
@@ -119,7 +119,7 @@ dump_record(dmu_replay_record_t *drr, void *payload, size_t payload_len,
 typedef struct fsavl_node {
        avl_node_t fn_node;
        nvlist_t *fn_nvfs;
-       char *fn_snapname;
+       const char *fn_snapname;
        uint64_t fn_guid;
 } fsavl_node_t;
 
@@ -137,7 +137,7 @@ fsavl_compare(const void *arg1, const void *arg2)
  * (optionally) name.
  */
 static nvlist_t *
-fsavl_find(avl_tree_t *avl, uint64_t snapguid, char **snapname)
+fsavl_find(avl_tree_t *avl, uint64_t snapguid, const char **snapname)
 {
        fsavl_node_t fn_find;
        fsavl_node_t *fn;
@@ -384,7 +384,7 @@ send_iterate_prop(zfs_handle_t *zhp, boolean_t received_only, nvlist_t *nv)
 
        nvpair_t *elem = NULL;
        while ((elem = nvlist_next_nvpair(props, elem)) != NULL) {
-               char *propname = nvpair_name(elem);
+               const char *propname = nvpair_name(elem);
                zfs_prop_t prop = zfs_name_to_prop(propname);
 
                if (!zfs_prop_user(propname)) {
@@ -412,7 +412,7 @@ send_iterate_prop(zfs_handle_t *zhp, boolean_t received_only, nvlist_t *nv)
                if (isspacelimit && zhp->zfs_type == ZFS_TYPE_SNAPSHOT)
                        continue;
 
-               char *source;
+               const char *source;
                if (nvlist_lookup_string(propnv, ZPROP_SOURCE, &source) == 0) {
                        if (strcmp(source, zhp->zfs_name) != 0 &&
                            strcmp(source, ZPROP_SOURCE_VAL_RECVD) != 0)
@@ -428,7 +428,7 @@ send_iterate_prop(zfs_handle_t *zhp, boolean_t received_only, nvlist_t *nv)
 
                if (zfs_prop_user(propname) ||
                    zfs_prop_get_type(prop) == PROP_TYPE_STRING) {
-                       char *value;
+                       const char *value;
                        value = fnvlist_lookup_string(propnv, ZPROP_VALUE);
                        fnvlist_add_string(nv, propname, value);
                } else {
@@ -1132,7 +1132,7 @@ dump_snapshot(zfs_handle_t *zhp, void *arg)
 
        if (!sdd->doall && !isfromsnap && !istosnap) {
                if (sdd->replicate) {
-                       char *snapname;
+                       const char *snapname;
                        nvlist_t *snapprops;
                        /*
                         * Filter out all intermediate snapshots except origin
@@ -1372,7 +1372,7 @@ dump_filesystems(zfs_handle_t *rzhp, send_dump_data_t *sdd)
                nvfs = fnvpair_value_nvlist(fspair);
                (void) nvlist_lookup_uint64(nvfs, "origin", &origin_guid);
                if (origin_guid != 0) {
-                       char *snapname;
+                       const char *snapname;
                        nvlist_t *origin_nv = fsavl_find(sdd->fsavl,
                            origin_guid, &snapname);
                        if (origin_nv != NULL) {
@@ -1391,7 +1391,7 @@ again:
        for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair;
            fspair = nvlist_next_nvpair(sdd->fss, fspair)) {
                nvlist_t *fslist, *parent_nv;
-               char *fsname;
+               const char *fsname;
                zfs_handle_t *zhp;
                int err;
                uint64_t origin_guid = 0;
@@ -1757,8 +1757,8 @@ zfs_send_resume_impl_cb_impl(libzfs_handle_t *hdl, sendflags_t *flags,
     int outfd, nvlist_t *resume_nvl)
 {
        char errbuf[ERRBUFLEN];
-       char *toname;
-       char *fromname = NULL;
+       const char *toname;
+       const char *fromname = NULL;
        uint64_t resumeobj, resumeoff, toguid, fromguid, bytes;
        zfs_handle_t *zhp;
        int error = 0;
@@ -3254,7 +3254,7 @@ created_before(libzfs_handle_t *hdl, avl_tree_t *avl,
     uint64_t guid1, uint64_t guid2)
 {
        nvlist_t *nvfs;
-       char *fsname = NULL, *snapname = NULL;
+       const char *fsname = NULL, *snapname = NULL;
        char buf[ZFS_MAX_DATASET_NAME_LEN];
        int rv;
        zfs_handle_t *guid1hdl, *guid2hdl;
@@ -3320,7 +3320,7 @@ recv_fix_encryption_hierarchy(libzfs_handle_t *hdl, const char *top_zfs,
                nvpair_t *snapel = NULL;
                boolean_t is_encroot, is_clone, stream_encroot;
                char *cp;
-               char *stream_keylocation = NULL;
+               const char *stream_keylocation = NULL;
                char keylocation[MAXNAMELEN];
                char fsname[ZFS_MAX_DATASET_NAME_LEN];
 
@@ -3440,12 +3440,12 @@ recv_incremental_replication(libzfs_handle_t *hdl, const char *tofs,
        nvlist_t *local_nv, *deleted = NULL;
        avl_tree_t *local_avl;
        nvpair_t *fselem, *nextfselem;
-       char *fromsnap;
+       const char *fromsnap;
        char newname[ZFS_MAX_DATASET_NAME_LEN];
        char guidname[32];
        int error;
        boolean_t needagain, progress, recursive;
-       char *s1, *s2;
+       const char *s1, *s2;
 
        fromsnap = fnvlist_lookup_string(stream_nv, "fromsnap");
 
@@ -3477,7 +3477,7 @@ again:
                uint64_t originguid = 0;
                uint64_t stream_originguid = 0;
                uint64_t parent_fromsnap_guid, stream_parent_fromsnap_guid;
-               char *fsname, *stream_fsname;
+               const char *fsname, *stream_fsname;
 
                nextfselem = nvlist_next_nvpair(local_nv, fselem);
 
@@ -3512,7 +3512,7 @@ again:
                        case 1: {
                                /* promote it! */
                                nvlist_t *origin_nvfs;
-                               char *origin_fsname;
+                               const char *origin_fsname;
 
                                origin_nvfs = fsavl_find(local_avl, originguid,
                                    NULL);
@@ -3543,7 +3543,7 @@ again:
                for (snapelem = nvlist_next_nvpair(snaps, NULL);
                    snapelem; snapelem = nextsnapelem) {
                        uint64_t thisguid;
-                       char *stream_snapname;
+                       const char *stream_snapname;
                        nvlist_t *found, *props;
 
                        nextsnapelem = nvlist_next_nvpair(snaps, snapelem);
@@ -3689,7 +3689,7 @@ again:
                         * new fs.
                         */
                        if (parent != NULL) {
-                               char *pname;
+                               const char *pname;
 
                                pname = fnvlist_lookup_string(parent, "name");
                                (void) snprintf(tryname, sizeof (tryname),
@@ -3740,8 +3740,8 @@ zfs_receive_package(libzfs_handle_t *hdl, int fd, const char *destname,
 {
        nvlist_t *stream_nv = NULL;
        avl_tree_t *stream_avl = NULL;
-       char *fromsnap = NULL;
-       char *sendsnap = NULL;
+       const char *fromsnap = NULL;
+       const char *sendsnap = NULL;
        char *cp;
        char tofs[ZFS_MAX_DATASET_NAME_LEN];
        char sendfs[ZFS_MAX_DATASET_NAME_LEN];
@@ -4230,7 +4230,7 @@ zfs_setup_cmdline_props(libzfs_handle_t *hdl, zfs_type_t type,
                         */
                        if (nvlist_exists(origprops, newname)) {
                                nvlist_t *attrs;
-                               char *source = NULL;
+                               const char *source = NULL;
 
                                attrs = fnvlist_lookup_nvlist(origprops,
                                    newname);
@@ -4354,7 +4354,7 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap,
        zprop_errflags_t prop_errflags;
        nvlist_t *prop_errors = NULL;
        boolean_t recursive;
-       char *snapname = NULL;
+       const char *snapname = NULL;
        char destsnap[MAXPATHLEN * 2];
        char origin[MAXNAMELEN] = {0};
        char name[MAXPATHLEN];
@@ -4385,7 +4385,7 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap,
        boolean_t holds = flags->holds && !flags->skipholds;
 
        if (stream_avl != NULL) {
-               char *keylocation = NULL;
+               const char *keylocation = NULL;
                nvlist_t *lookup = NULL;
                nvlist_t *fs = fsavl_find(stream_avl, drrb->drr_toguid,
                    &snapname);
@@ -5503,7 +5503,7 @@ zfs_receive(libzfs_handle_t *hdl, const char *tosnap, nvlist_t *props,
        char *top_zfs = NULL;
        int err;
        struct stat sb;
-       char *originsnap = NULL;
+       const char *originsnap = NULL;
 
        /*
         * The only way fstat can fail is if we do not have a valid file
index 27bb4476d706cb511b9c8acac145d4a5806a9fe7..a2259eee91ca6a0a5606b0b69a44a1eaa6fa16d4 100644 (file)
@@ -168,7 +168,8 @@ find_vdev_problem(nvlist_t *vdev, int (*func)(vdev_stat_t *, uint_t),
         * later.
         */
        if (ignore_replacing == B_TRUE) {
-               char *type = fnvlist_lookup_string(vdev, ZPOOL_CONFIG_TYPE);
+               const char *type = fnvlist_lookup_string(vdev,
+                   ZPOOL_CONFIG_TYPE);
                if (strcmp(type, VDEV_TYPE_REPLACING) == 0)
                        return (B_FALSE);
        }
index 2507bfecdc9bafd3a3fbac44159a76a3a9a82936..b0d7b2afaf7b0a2ccdef834ac0fd1a4d7edc62cd 100644 (file)
@@ -1595,13 +1595,13 @@ zfs_nicestrtonum(libzfs_handle_t *hdl, const char *value, uint64_t *num)
  */
 int
 zprop_parse_value(libzfs_handle_t *hdl, nvpair_t *elem, int prop,
-    zfs_type_t type, nvlist_t *ret, char **svalp, uint64_t *ivalp,
+    zfs_type_t type, nvlist_t *ret, const char **svalp, uint64_t *ivalp,
     const char *errbuf)
 {
        data_type_t datatype = nvpair_type(elem);
        zprop_type_t proptype;
        const char *propname;
-       char *value;
+       const char *value;
        boolean_t isnone = B_FALSE;
        boolean_t isauto = B_FALSE;
        int err = 0;
index cab12d39e6e4a258318a5a052b79485acb4188fe..401151b1afb530b077a5f8b1d09920b9e7d619c9 100644 (file)
@@ -96,7 +96,7 @@ zpool_relabel_disk(libzfs_handle_t *hdl, const char *path, const char *msg)
 static int
 read_efi_label(nvlist_t *config, diskaddr_t *sb)
 {
-       char *path;
+       const char *path;
        int fd;
        char diskname[MAXPATHLEN];
        int err = -1;
index 26a4339e7faba78425dabe5dd62162b1cc31cded..ec94a46505532997f2cb1ecaceb0d4c3197bc352 100644 (file)
     <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='65536' id='163f6aa5'>
       <subrange length='8192' type-id='7359adad' id='c88f397d'/>
     </array-type-def>
+    <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='infinite' id='e84913bd'>
+      <subrange length='infinite' type-id='7359adad' id='031f2035'/>
+    </array-type-def>
     <class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='a4036571'/>
     <class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='010ae0b9'/>
     <class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='79bd3751'/>
       <data-member access='public' layout-offset-in-bits='96'>
         <var-decl name='nvp_type' type-id='8d0687d2' visibility='default'/>
       </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='nvp_name' type-id='e84913bd' visibility='default'/>
+      </data-member>
     </class-decl>
     <typedef-decl name='nvpair_t' type-id='1c34e459' id='57928edf'/>
     <class-decl name='nvlist' size-in-bits='192' is-struct='yes' visibility='default' id='ac266fd9'>
     </function-decl>
     <function-decl name='nvpair_name' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='dace003f'/>
-      <return type-id='26a90f95'/>
+      <return type-id='80f4b756'/>
     </function-decl>
     <function-decl name='fnvlist_alloc' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='5ce45b60'/>
       <return type-id='9c313c2d'/>
     </function-decl>
     <function-decl name='fnvlist_lookup_string' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='5ce45b60'/>
+      <parameter type-id='22cce67b'/>
       <parameter type-id='80f4b756'/>
-      <return type-id='26a90f95'/>
+      <return type-id='80f4b756'/>
     </function-decl>
     <function-decl name='libspl_assertf' mangled-name='libspl_assertf' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='libspl_assertf'>
       <parameter type-id='80f4b756'/>
index 866106d5bb994aa3240fda2b78395ecad1a15761..5903d5dcbe219f170efb521199b20c77eb4706af 100644 (file)
     <qualified-type-def type-id='a84c031d' const='yes' id='9b45d938'/>
     <pointer-type-def type-id='9b45d938' size-in-bits='64' id='80f4b756'/>
     <qualified-type-def type-id='80f4b756' restrict='yes' id='9d26089a'/>
+    <pointer-type-def type-id='80f4b756' size-in-bits='64' id='7d3cd834'/>
     <qualified-type-def type-id='8e8d4be3' const='yes' id='693c3853'/>
     <pointer-type-def type-id='693c3853' size-in-bits='64' id='22cce67b'/>
     <pointer-type-def type-id='95942d0c' size-in-bits='64' id='b0382bb3'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvlist_lookup_string' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='5ce45b60'/>
+      <parameter type-id='22cce67b'/>
       <parameter type-id='80f4b756'/>
-      <parameter type-id='9b23c9ad'/>
+      <parameter type-id='7d3cd834'/>
       <return type-id='95e97e5e'/>
     </function-decl>
     <function-decl name='nvlist_exists' visibility='default' binding='global' size-in-bits='64'>
index 21007fd9ef5045144766757388d2066743b00f69..894471a9bf357e644e6760b91474758319857c16 100644 (file)
@@ -116,7 +116,7 @@ lzbe_get_boot_device(const char *pool, char **device)
        libzfs_handle_t *hdl;
        zpool_handle_t *zphdl;
        nvlist_t *nv;
-       char *val;
+       const char *val;
        int rv = -1;
 
        if (pool == NULL || *pool == '\0' || device == NULL)
@@ -140,14 +140,13 @@ lzbe_get_boot_device(const char *pool, char **device)
                         * we only do need dataset name.
                         */
                        if (strncmp(val, "zfs:", 4) == 0) {
-                               val += 4;
-                               val = strdup(val);
-                               if (val != NULL) {
-                                       size_t len = strlen(val);
-
-                                       if (val[len - 1] == ':')
-                                               val[len - 1] = '\0';
-                                       *device = val;
+                               char *tmp = strdup(val + 4);
+                               if (tmp != NULL) {
+                                       size_t len = strlen(tmp);
+
+                                       if (tmp[len - 1] == ':')
+                                               tmp[len - 1] = '\0';
+                                       *device = tmp;
                                } else {
                                        rv = ENOMEM;
                                }
index 551f1294d31fffe9dd5cea33aecb1a19ae88563d..b9503d4e56d07bdb01321657a898ceb28d99c589 100644 (file)
@@ -65,7 +65,7 @@ show_vdev_stats(const char *desc, const char *ctype, nvlist_t *nv, int indent)
 
        if (desc != NULL) {
                const char *suffix = "";
-               char *bias = NULL;
+               const char *bias = NULL;
                char bias_suffix[32];
 
                (void) nvlist_lookup_uint64(nv, ZPOOL_CONFIG_IS_LOG, &is_log);
@@ -113,12 +113,13 @@ show_vdev_stats(const char *desc, const char *ctype, nvlist_t *nv, int indent)
 
        for (c = 0; c < children; c++) {
                nvlist_t *cnv = child[c];
-               char *cname = NULL, *tname;
+               const char *cname = NULL;
+               char *tname;
                uint64_t np;
                int len;
                if (nvlist_lookup_string(cnv, ZPOOL_CONFIG_PATH, &cname) &&
                    nvlist_lookup_string(cnv, ZPOOL_CONFIG_TYPE, &cname))
-                       cname = (char *)"<unknown>";
+                       cname = "<unknown>";
                len = strlen(cname) + 2;
                tname = umem_zalloc(len, UMEM_NOFAIL);
                (void) strlcpy(tname, cname, len);
@@ -133,7 +134,7 @@ void
 show_pool_stats(spa_t *spa)
 {
        nvlist_t *config, *nvroot;
-       char *name;
+       const char *name;
 
        VERIFY(spa_get_stats(spa_name(spa), &config, NULL, 0) == 0);
 
index eb2417b479879f5537612d5e8cf00da87774caea..8b64369dc29f9f2e3714f0925b1fecc5430f91ce 100644 (file)
@@ -168,9 +168,9 @@ zpool_open_func(void *arg)
         * Add additional entries for paths described by this label.
         */
        if (rn->rn_labelpaths) {
-               char *path = NULL;
-               char *devid = NULL;
-               char *env = NULL;
+               const char *path = NULL;
+               const char *devid = NULL;
+               const char *env = NULL;
                rdsk_node_t *slice;
                avl_index_t where;
                int timeout;
@@ -769,7 +769,7 @@ no_dev:
  *    vdev_enc_sysfs_path: '/sys/class/enclosure/11:0:1:0/SLOT 4'
  */
 static void
-update_vdev_config_dev_sysfs_path(nvlist_t *nv, char *path)
+update_vdev_config_dev_sysfs_path(nvlist_t *nv, const char *path)
 {
        char *upath, *spath;
 
@@ -795,7 +795,7 @@ sysfs_path_pool_vdev_iter_f(void *hdl_data, nvlist_t *nv, void *data)
 {
        (void) hdl_data, (void) data;
 
-       char *path = NULL;
+       const char *path = NULL;
        if (nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &path) != 0)
                return (1);
 
@@ -841,7 +841,7 @@ void
 update_vdev_config_dev_strs(nvlist_t *nv)
 {
        vdev_dev_strs_t vds;
-       char *env, *type, *path;
+       const char *env, *type, *path;
        uint64_t wholedisk = 0;
 
        /*
index 7c86054f05b56ba2e564bfbad197a48709c0cf41..65f462e42cd0a7779e90c09a23d79d2bb56d29a4 100644 (file)
@@ -233,7 +233,7 @@ fix_paths(libpc_handle_t *hdl, nvlist_t *nv, name_entry_t *names)
        uint_t c, children;
        uint64_t guid;
        name_entry_t *ne, *best;
-       char *path;
+       const char *path;
 
        if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN,
            &child, &children) == 0) {
@@ -497,7 +497,7 @@ get_configs(libpc_handle_t *hdl, pool_list_t *pl, boolean_t active_ok,
        uint_t i, nspares, nl2cache;
        boolean_t config_seen;
        uint64_t best_txg;
-       char *name, *hostname = NULL;
+       const char *name, *hostname = NULL;
        uint64_t guid;
        uint_t children = 0;
        nvlist_t **child = NULL;
@@ -591,8 +591,8 @@ get_configs(libpc_handle_t *hdl, pool_list_t *pl, boolean_t active_ok,
                                 *      hostname (if available)
                                 */
                                uint64_t state, version;
-                               char *comment = NULL;
-                               char *compatibility = NULL;
+                               const char *comment = NULL;
+                               const char *compatibility = NULL;
 
                                version = fnvlist_lookup_uint64(tmp,
                                    ZPOOL_CONFIG_VERSION);
@@ -1161,12 +1161,12 @@ slice_cache_compare(const void *arg1, const void *arg2)
 
 static int
 label_paths_impl(libpc_handle_t *hdl, nvlist_t *nvroot, uint64_t pool_guid,
-    uint64_t vdev_guid, char **path, char **devid)
+    uint64_t vdev_guid, const char **path, const char **devid)
 {
        nvlist_t **child;
        uint_t c, children;
        uint64_t guid;
-       char *val;
+       const char *val;
        int error;
 
        if (nvlist_lookup_nvlist_array(nvroot, ZPOOL_CONFIG_CHILDREN,
@@ -1204,7 +1204,8 @@ label_paths_impl(libpc_handle_t *hdl, nvlist_t *nvroot, uint64_t pool_guid,
  * The returned pointers are only valid as long as label remains valid.
  */
 int
-label_paths(libpc_handle_t *hdl, nvlist_t *label, char **path, char **devid)
+label_paths(libpc_handle_t *hdl, nvlist_t *label, const char **path,
+    const char **devid)
 {
        nvlist_t *nvroot;
        uint64_t pool_guid;
@@ -1473,7 +1474,7 @@ zpool_find_import_impl(libpc_handle_t *hdl, importargs_t *iarg,
                        }
 
                        if (iarg->poolname != NULL && !aux) {
-                               char *pname;
+                               const char *pname;
 
                                matched = nvlist_lookup_string(config,
                                    ZPOOL_CONFIG_POOL_NAME, &pname) == 0 &&
@@ -1547,7 +1548,7 @@ static int
 discover_cached_paths(libpc_handle_t *hdl, nvlist_t *nv,
     avl_tree_t *cache, pthread_mutex_t *lock)
 {
-       char *path = NULL;
+       const char *path = NULL;
        ssize_t dl;
        uint_t children;
        nvlist_t **child;
@@ -1567,15 +1568,17 @@ discover_cached_paths(libpc_handle_t *hdl, nvlist_t *nv,
                int ret;
                char c = '\0';
                if ((dl = zfs_dirnamelen(path)) == -1) {
-                       path = (char *)".";
+                       path = ".";
                } else {
                        c = path[dl];
-                       path[dl] = '\0';
+                       ((char *)path)[dl] = '\0';
+
                }
                ret = zpool_find_import_scan_dir(hdl, lock, cache,
                    path, 0);
                if (c != '\0')
-                       path[dl] = c;
+                       ((char *)path)[dl] = c;
+
                return (ret);
        }
        return (0);
@@ -1595,7 +1598,7 @@ zpool_find_import_cached(libpc_handle_t *hdl, importargs_t *iarg)
        nvlist_t *raw, *src, *dst;
        nvlist_t *pools;
        nvpair_t *elem;
-       char *name;
+       const char *name;
        uint64_t this_guid;
        boolean_t active;
 
@@ -1825,10 +1828,10 @@ zpool_search_import(libpc_handle_t *hdl, importargs_t *import)
 }
 
 static boolean_t
-pool_match(nvlist_t *cfg, char *tgt)
+pool_match(nvlist_t *cfg, const char *tgt)
 {
        uint64_t v, guid = strtoull(tgt, NULL, 0);
-       char *s;
+       const char *s;
 
        if (guid != 0) {
                if (nvlist_lookup_uint64(cfg, ZPOOL_CONFIG_POOL_GUID, &v) == 0)
@@ -1913,7 +1916,7 @@ for_each_vdev_cb(void *zhp, nvlist_t *nv, pool_vdev_iter_f func,
        uint_t c, children;
        int ret = 0;
        int i;
-       char *type;
+       const char *type;
 
        const char *list[] = {
            ZPOOL_CONFIG_SPARES,
index f851a91132ce1c0d2283f2cd6111e3d98f32b106..da7941fa53071edc8258602c283d9a6e38f34ced 100644 (file)
@@ -33,8 +33,8 @@
 #define        IMPORT_ORDER_SCAN_OFFSET        10
 #define        IMPORT_ORDER_DEFAULT            100
 
-int label_paths(libpc_handle_t *hdl, nvlist_t *label, char **path,
-    char **devid);
+int label_paths(libpc_handle_t *hdl, nvlist_t *label, const char **path,
+    const char **devid);
 int zpool_find_import_blkid(libpc_handle_t *hdl, pthread_mutex_t *lock,
     avl_tree_t **slice_cache);
 
index 86b0b4cdfc6e7c81a4b36a7ac55c8c4076c64ecc..cc2233c40391d6a7f9c44f45847d9e1d7c424fab 100644 (file)
@@ -402,10 +402,10 @@ fnvlist_lookup_uint64(const nvlist_t *nvl, const char *name)
        return (rv);
 }
 
-char *
-fnvlist_lookup_string(nvlist_t *nvl, const char *name)
+const char *
+fnvlist_lookup_string(const nvlist_t *nvl, const char *name)
 {
-       char *rv;
+       const char *rv;
        VERIFY0(nvlist_lookup_string(nvl, name, &rv));
        return (rv);
 }
@@ -577,10 +577,10 @@ fnvpair_value_uint64(const nvpair_t *nvp)
        return (rv);
 }
 
-char *
-fnvpair_value_string(nvpair_t *nvp)
+const char *
+fnvpair_value_string(const nvpair_t *nvp)
 {
-       char *rv;
+       const char *rv;
        VERIFY0(nvpair_value_string(nvp, &rv));
        return (rv);
 }
index 023d496019ac11c8031420f5af6cde119337124d..d9449e47e87ab97ac00d6c07fc7878df65e704f2 100644 (file)
@@ -473,7 +473,7 @@ nvt_remove_nvpair(nvlist_t *nvl, const nvpair_t *nvp)
        }
        i_nvp_t **tab = priv->nvp_hashtable;
 
-       char *name = NVP_NAME(nvp);
+       const char *name = NVP_NAME(nvp);
        uint64_t hash = nvt_hash(name);
        uint64_t index = hash & (priv->nvp_nbuckets - 1);
 
@@ -528,7 +528,7 @@ nvt_add_nvpair(nvlist_t *nvl, nvpair_t *nvp)
        }
        i_nvp_t **tab = priv->nvp_hashtable;
 
-       char *name = NVP_NAME(nvp);
+       const char *name = NVP_NAME(nvp);
        uint64_t hash = nvt_hash(name);
        uint64_t index = hash & (priv->nvp_nbuckets - 1);
 
@@ -1517,7 +1517,7 @@ nvlist_empty(const nvlist_t *nvl)
        return (priv->nvp_list == NULL);
 }
 
-char *
+const char *
 nvpair_name(const nvpair_t *nvp)
 {
        return (NVP_NAME(nvp));
@@ -1731,7 +1731,7 @@ nvlist_lookup_double(const nvlist_t *nvl, const char *name, double *val)
 #endif
 
 int
-nvlist_lookup_string(nvlist_t *nvl, const char *name, char **val)
+nvlist_lookup_string(const nvlist_t *nvl, const char *name, const char **val)
 {
        return (nvlist_lookup_common(nvl, name, DATA_TYPE_STRING, NULL, val));
 }
@@ -1917,7 +1917,7 @@ nvlist_lookup_pairs(nvlist_t *nvl, int flag, ...)
  */
 static int
 nvlist_lookup_nvpair_ei_sep(nvlist_t *nvl, const char *name, const char sep,
-    nvpair_t **ret, int *ip, char **ep)
+    nvpair_t **ret, int *ip, const char **ep)
 {
        nvpair_t        *nvp;
        const char      *np;
@@ -2097,7 +2097,7 @@ nvlist_lookup_nvpair(nvlist_t *nvl, const char *name, nvpair_t **ret)
  * description.
  */
 int nvlist_lookup_nvpair_embedded_index(nvlist_t *nvl,
-    const char *name, nvpair_t **ret, int *ip, char **ep)
+    const char *name, nvpair_t **ret, int *ip, const char **ep)
 {
        return (nvlist_lookup_nvpair_ei_sep(nvl, name, '.', ret, ip, ep));
 }
@@ -2192,7 +2192,7 @@ nvpair_value_double(const nvpair_t *nvp, double *val)
 #endif
 
 int
-nvpair_value_string(nvpair_t *nvp, char **val)
+nvpair_value_string(const nvpair_t *nvp, const char **val)
 {
        return (nvpair_value_common(nvp, DATA_TYPE_STRING, NULL, val));
 }
@@ -2264,7 +2264,7 @@ nvpair_value_uint64_array(nvpair_t *nvp, uint64_t **val, uint_t *nelem)
 }
 
 int
-nvpair_value_string_array(nvpair_t *nvp, char ***val, uint_t *nelem)
+nvpair_value_string_array(nvpair_t *nvp, const char ***val, uint_t *nelem)
 {
        return (nvpair_value_common(nvp, DATA_TYPE_STRING_ARRAY, nelem, val));
 }
index 16188c71b53d5693927ff836a4ad7cb3d19a443d..4a2d02350f6288a2e3020a6a0b96bce56c258804 100644 (file)
@@ -114,7 +114,7 @@ log_sysevent(nvlist_t *event)
                }
                case DATA_TYPE_STRING:
                {
-                       char *value;
+                       const char *value;
 
                        (void) nvpair_value_string(elem, &value);
                        sbuf_printf(sb, " %s=%s", nvpair_name(elem), value);
@@ -180,7 +180,7 @@ log_sysevent(nvlist_t *event)
                }
                case DATA_TYPE_STRING_ARRAY:
                {
-                       char **strarr;
+                       const char **strarr;
                        uint_t ii, nelem;
 
                        (void) nvpair_value_string_array(elem, &strarr, &nelem);
index dc1d31e1bd1160a4e06480bec2dff819d609db65..d26d89544e7c0d434f23da99fd9960739820287f 100644 (file)
@@ -1690,7 +1690,7 @@ zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t *zplprops, dmu_tx_t *tx)
        while ((elem = nvlist_next_nvpair(zplprops, elem)) != NULL) {
                /* For the moment we expect all zpl props to be uint64_ts */
                uint64_t val;
-               char *name;
+               const char *name;
 
                ASSERT3S(nvpair_type(elem), ==, DATA_TYPE_UINT64);
                val = fnvpair_value_uint64(elem);
index 7b802a9bace0851fb08bf2d37ac15473111c65a5..38cdccfd8084eded1f71c7af1308ed5ccb09a138 100644 (file)
@@ -1866,7 +1866,7 @@ zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t *zplprops, dmu_tx_t *tx)
        while ((elem = nvlist_next_nvpair(zplprops, elem)) != NULL) {
                /* For the moment we expect all zpl props to be uint64_ts */
                uint64_t val;
-               char *name;
+               const char *name;
 
                ASSERT(nvpair_type(elem) == DATA_TYPE_UINT64);
                VERIFY(nvpair_value_uint64(elem, &val) == 0);
index 36a9c8a35ae176226a3603401f0cdae5178f3b89..384746bd4a022d7bba14014f053033574cf51416 100644 (file)
@@ -70,7 +70,7 @@ zfs_allocatable_devs(nvlist_t *nv)
 boolean_t
 zfs_special_devs(nvlist_t *nv, const char *type)
 {
-       char *bias;
+       const char *bias;
        uint_t c;
        nvlist_t **child;
        uint_t children;
@@ -98,7 +98,7 @@ zpool_get_load_policy(nvlist_t *nvl, zpool_load_policy_t *zlpp)
 {
        nvlist_t *policy;
        nvpair_t *elem;
-       char *nm;
+       const char *nm;
 
        /* Defaults */
        zlpp->zlp_rewind = ZPOOL_NO_REWIND;
index 40d207b503d8506734eebeba72daa2ea8e242d8d..f977c761147d4d9aba74e8b0309316cd270f2d6b 100644 (file)
@@ -102,9 +102,9 @@ zfs_deleg_canonicalize_perm(const char *perm)
 }
 
 static int
-zfs_validate_who(char *who)
+zfs_validate_who(const char *who)
 {
-       char *p;
+       const char *p;
 
        if (who[2] != ZFS_DELEG_FIELD_SEP_CHR)
                return (-1);
index 2647eb052e71afb3308639968589024d7ddf5c88..c2ce5ce000ac88fa987cad113fe3cc1043ce2969 100644 (file)
@@ -1217,10 +1217,11 @@ dmu_recv_resume_begin_sync(void *arg, dmu_tx_t *tx)
  * succeeds; otherwise we will leak the holds on the datasets.
  */
 int
-dmu_recv_begin(char *tofs, char *tosnap, dmu_replay_record_t *drr_begin,
-    boolean_t force, boolean_t heal, boolean_t resumable, nvlist_t *localprops,
-    nvlist_t *hidden_args, char *origin, dmu_recv_cookie_t *drc,
-    zfs_file_t *fp, offset_t *voffp)
+dmu_recv_begin(const char *tofs, const char *tosnap,
+    dmu_replay_record_t *drr_begin, boolean_t force, boolean_t heal,
+    boolean_t resumable, nvlist_t *localprops, nvlist_t *hidden_args,
+    const char *origin, dmu_recv_cookie_t *drc, zfs_file_t *fp,
+    offset_t *voffp)
 {
        dmu_recv_begin_arg_t drba = { 0 };
        int err = 0;
index b95c94beff1f628f8b4ab49b9c39c8e2a2650f86..e04796a0814f98257c2c61b043a71bcba8e0a6fd 100644 (file)
@@ -160,14 +160,14 @@ dsl_bookmark_create_nvl_validate_pair(const char *bmark, const char *source)
 int
 dsl_bookmark_create_nvl_validate(nvlist_t *bmarks)
 {
-       char *first = NULL;
+       const char *first = NULL;
        size_t first_len = 0;
 
        for (nvpair_t *pair = nvlist_next_nvpair(bmarks, NULL);
            pair != NULL; pair = nvlist_next_nvpair(bmarks, pair)) {
 
-               char *bmark = nvpair_name(pair);
-               char *source;
+               const char *bmark = nvpair_name(pair);
+               const char *source;
 
                /* list structure: values must be snapshots XOR bookmarks */
                if (nvpair_value_string(pair, &source) != 0)
@@ -177,7 +177,7 @@ dsl_bookmark_create_nvl_validate(nvlist_t *bmarks)
 
                /* same pool check */
                if (first == NULL) {
-                       char *cp = strpbrk(bmark, "/#");
+                       const char *cp = strpbrk(bmark, "/#");
                        if (cp == NULL)
                                return (-1);
                        first = bmark;
@@ -305,11 +305,11 @@ dsl_bookmark_create_check(void *arg, dmu_tx_t *tx)
 
        for (nvpair_t *pair = nvlist_next_nvpair(dbca->dbca_bmarks, NULL);
            pair != NULL; pair = nvlist_next_nvpair(dbca->dbca_bmarks, pair)) {
-               char *new = nvpair_name(pair);
+               const char *new = nvpair_name(pair);
 
                int error = schema_err;
                if (error == 0) {
-                       char *source = fnvpair_value_string(pair);
+                       const char *source = fnvpair_value_string(pair);
                        error = dsl_bookmark_create_check_impl(dp, new, source);
                        if (error != 0)
                                error = SET_ERROR(error);
@@ -589,8 +589,8 @@ dsl_bookmark_create_sync(void *arg, dmu_tx_t *tx)
        for (nvpair_t *pair = nvlist_next_nvpair(dbca->dbca_bmarks, NULL);
            pair != NULL; pair = nvlist_next_nvpair(dbca->dbca_bmarks, pair)) {
 
-               char *new = nvpair_name(pair);
-               char *source = fnvpair_value_string(pair);
+               const char *new = nvpair_name(pair);
+               const char *source = fnvpair_value_string(pair);
 
                if (strchr(source, '@') != NULL) {
                        dsl_bookmark_create_sync_impl_snap(new, source, tx,
index dd936e74b1d9456dafabd15ccf18a398659dfc09..5e6e4e3d6c3949fc2014adae3d8236d9776dd127 100644 (file)
@@ -143,7 +143,7 @@ dsl_crypto_params_create_nvlist(dcp_cmd_t cmd, nvlist_t *props,
        dsl_wrapping_key_t *wkey = NULL;
        uint8_t *wkeydata = NULL;
        uint_t wkeydata_len = 0;
-       char *keylocation = NULL;
+       const char *keylocation = NULL;
 
        dcp = kmem_zalloc(sizeof (dsl_crypto_params_t), KM_SLEEP);
        dcp->cp_cmd = cmd;
index 1fa73e83788c086a2c891e9001c508d0b8562231..14e7ced4007c842dc6b4dd02516d0875f4c104ca 100644 (file)
@@ -1620,7 +1620,7 @@ dsl_dataset_snapshot_check(void *arg, dmu_tx_t *tx)
                for (pair = nvlist_next_nvpair(cnt_track, NULL);
                    pair != NULL; pair = nvlist_next_nvpair(cnt_track, pair)) {
                        int error = 0;
-                       char *name;
+                       const char *name;
                        uint64_t cnt = 0;
                        dsl_dataset_t *ds;
 
@@ -1652,7 +1652,7 @@ dsl_dataset_snapshot_check(void *arg, dmu_tx_t *tx)
            pair != NULL; pair = nvlist_next_nvpair(ddsa->ddsa_snaps, pair)) {
                int error = 0;
                dsl_dataset_t *ds;
-               char *name, *atp = NULL;
+               const char *name, *atp = NULL;
                char dsname[ZFS_MAX_DATASET_NAME_LEN];
 
                name = nvpair_name(pair);
@@ -1877,7 +1877,7 @@ dsl_dataset_snapshot_sync(void *arg, dmu_tx_t *tx)
        for (pair = nvlist_next_nvpair(ddsa->ddsa_snaps, NULL);
            pair != NULL; pair = nvlist_next_nvpair(ddsa->ddsa_snaps, pair)) {
                dsl_dataset_t *ds;
-               char *name, *atp;
+               const char *name, *atp;
                char dsname[ZFS_MAX_DATASET_NAME_LEN];
 
                name = nvpair_name(pair);
@@ -1906,7 +1906,7 @@ dsl_dataset_snapshot(nvlist_t *snaps, nvlist_t *props, nvlist_t *errors)
        boolean_t needsuspend;
        int error;
        spa_t *spa;
-       char *firstname;
+       const char *firstname;
        nvlist_t *suspended = NULL;
 
        pair = nvlist_next_nvpair(snaps, NULL);
@@ -1925,8 +1925,8 @@ dsl_dataset_snapshot(nvlist_t *snaps, nvlist_t *props, nvlist_t *errors)
                for (pair = nvlist_next_nvpair(snaps, NULL); pair != NULL;
                    pair = nvlist_next_nvpair(snaps, pair)) {
                        char fsname[ZFS_MAX_DATASET_NAME_LEN];
-                       char *snapname = nvpair_name(pair);
-                       char *atp;
+                       const char *snapname = nvpair_name(pair);
+                       const char *atp;
                        void *cookie;
 
                        atp = strchr(snapname, '@');
index 100a48cb4f710bf1659a9ed7486369e0ed7ebfc7..053f26878cf1875cb51e9aef307c7e7072ce6ed1 100644 (file)
@@ -658,7 +658,7 @@ dsl_destroy_snapshots_nvl(nvlist_t *snaps, boolean_t defer,
            zfs_lua_max_memlimit,
            fnvlist_lookup_nvpair(wrapper, ZCP_ARG_ARGLIST), result);
        if (error != 0) {
-               char *errorstr = NULL;
+               const char *errorstr = NULL;
                (void) nvlist_lookup_string(result, ZCP_RET_ERROR, &errorstr);
                if (errorstr != NULL) {
                        zfs_dbgmsg("%s", errorstr);
index a1e73f97e38a711eef0f2c6a40547d7e35346678..99f931cd86324b75b42f9c38131e318ff44f7d56 100644 (file)
@@ -956,7 +956,7 @@ dsl_props_set_check(void *arg, dmu_tx_t *tx)
                        return (SET_ERROR(ENAMETOOLONG));
                }
                if (nvpair_type(elem) == DATA_TYPE_STRING) {
-                       char *valstr = fnvpair_value_string(elem);
+                       const char *valstr = fnvpair_value_string(elem);
                        if (strlen(valstr) >= (version <
                            SPA_VERSION_STMF_PROP ?
                            ZAP_OLDMAXVALUELEN : ZAP_MAXVALUELEN)) {
index befb06cbdbcbede546b3833c768f33aa66e650b9..75953f70f9262d95286b6d131623c50b6b9ead86 100644 (file)
@@ -115,7 +115,7 @@ dsl_dataset_user_hold_check(void *arg, dmu_tx_t *tx)
            pair != NULL; pair = nvlist_next_nvpair(dduha->dduha_holds, pair)) {
                dsl_dataset_t *ds;
                int error = 0;
-               char *htag, *name;
+               const char *htag, *name;
 
                /* must be a snapshot */
                name = nvpair_name(pair);
@@ -572,7 +572,7 @@ dsl_dataset_user_release_impl(nvlist_t *holds, nvlist_t *errlist,
 {
        dsl_dataset_user_release_arg_t ddura;
        nvpair_t *pair;
-       char *pool;
+       const char *pool;
        int error;
 
        pair = nvlist_next_nvpair(holds, NULL);
index 52ea6262a29fa67c200c515608f677c031cd174d..76956572f8bd6a279b2481f163e5192d22f1a1f6 100644 (file)
@@ -892,7 +892,7 @@ fm_fmri_hc_create(nvlist_t *fmri, int version, const nvlist_t *auth,
        uint_t n;
        int i, j;
        va_list ap;
-       char *hcname, *hcid;
+       const char *hcname, *hcid;
 
        if (!fm_fmri_hc_set_common(fmri, version, auth))
                return;
index 98a302237df8c2f0e65e363754ebf72526e07297..95b38f09825bc43ef0f4e90b9d3a9ec11606b935 100644 (file)
@@ -550,7 +550,7 @@ spa_prop_validate(spa_t *spa, nvlist_t *props)
        elem = NULL;
        while ((elem = nvlist_next_nvpair(props, elem)) != NULL) {
                uint64_t intval;
-               char *strval, *slash, *check, *fname;
+               const char *strval, *slash, *check, *fname;
                const char *propname = nvpair_name(elem);
                zpool_prop_t prop = zpool_name_to_prop(propname);
 
@@ -752,7 +752,7 @@ spa_prop_validate(spa_t *spa, nvlist_t *props)
 void
 spa_configfile_set(spa_t *spa, nvlist_t *nvp, boolean_t need_sync)
 {
-       char *cachefile;
+       const char *cachefile;
        spa_config_dirent_t *dp;
 
        if (nvlist_lookup_string(nvp, zpool_prop_to_name(ZPOOL_PROP_CACHEFILE),
@@ -3351,7 +3351,7 @@ static int
 spa_verify_host(spa_t *spa, nvlist_t *mos_config)
 {
        uint64_t hostid;
-       char *hostname;
+       const char *hostname;
        uint64_t myhostid = 0;
 
        if (!spa_is_root(spa) && nvlist_lookup_uint64(mos_config,
@@ -3386,8 +3386,8 @@ spa_ld_parse_config(spa_t *spa, spa_import_type_t type)
        int parse;
        vdev_t *rvd;
        uint64_t pool_guid;
-       char *comment;
-       char *compatibility;
+       const char *comment;
+       const char *compatibility;
 
        /*
         * Versioning wasn't explicitly added to the label until later, so if
@@ -5797,7 +5797,7 @@ spa_create(const char *pool, nvlist_t *nvroot, nvlist_t *props,
     nvlist_t *zplprops, dsl_crypto_params_t *dcp)
 {
        spa_t *spa;
-       char *altroot = NULL;
+       const char *altroot = NULL;
        vdev_t *rvd;
        dsl_pool_t *dp;
        dmu_tx_t *tx;
@@ -5810,8 +5810,8 @@ spa_create(const char *pool, nvlist_t *nvroot, nvlist_t *props,
        boolean_t has_encryption;
        boolean_t has_allocclass;
        spa_feature_t feat;
-       char *feat_name;
-       char *poolname;
+       const char *feat_name;
+       const char *poolname;
        nvlist_t *nvl;
 
        if (props == NULL ||
@@ -6110,7 +6110,7 @@ int
 spa_import(char *pool, nvlist_t *config, nvlist_t *props, uint64_t flags)
 {
        spa_t *spa;
-       char *altroot = NULL;
+       const char *altroot = NULL;
        spa_load_state_t state = SPA_LOAD_IMPORT;
        zpool_load_policy_t policy;
        spa_mode_t mode = spa_mode_global;
@@ -6290,7 +6290,7 @@ nvlist_t *
 spa_tryimport(nvlist_t *tryconfig)
 {
        nvlist_t *config = NULL;
-       char *poolname, *cachefile;
+       const char *poolname, *cachefile;
        spa_t *spa;
        uint64_t state;
        int error;
@@ -7563,7 +7563,7 @@ spa_vdev_split_mirror(spa_t *spa, const char *newname, nvlist_t *config,
        uint_t c, children, lastlog;
        nvlist_t **child, *nvl, *tmp;
        dmu_tx_t *tx;
-       char *altroot = NULL;
+       const char *altroot = NULL;
        vdev_t *rvd, **vml = NULL;                      /* vdev modify list */
        boolean_t activate_slog;
 
@@ -8783,7 +8783,7 @@ spa_sync_props(void *arg, dmu_tx_t *tx)
 
        while ((elem = nvlist_next_nvpair(nvp, elem))) {
                uint64_t intval;
-               char *strval, *fname;
+               const char *strval, *fname;
                zpool_prop_t prop;
                const char *propname;
                zprop_type_t proptype;
index bf4d1e210b21ced311b878e34b24f9c11fef6bce..636c04d9f7857848f9ac71075107904e767f4d9a 100644 (file)
@@ -245,7 +245,7 @@ spa_write_cachefile(spa_t *target, boolean_t removing, boolean_t postsysevent,
 {
        spa_config_dirent_t *dp, *tdp;
        nvlist_t *nvl;
-       char *pool_name;
+       const char *pool_name;
        boolean_t ccw_failure;
        int error = 0;
 
@@ -418,7 +418,7 @@ spa_config_generate(spa_t *spa, vdev_t *vd, uint64_t txg, int getstats)
        unsigned long hostid = 0;
        boolean_t locked = B_FALSE;
        uint64_t split_guid;
-       char *pool_name;
+       const char *pool_name;
 
        if (vd == NULL) {
                vd = rvd;
index 6d468e716421af79c77ba0f29f47d1c60f51ee84..de036d6c3718b9b0c3e3c860ce895d33090c6b47 100644 (file)
@@ -199,7 +199,7 @@ spa_history_log_notify(spa_t *spa, nvlist_t *nvl)
 {
        nvlist_t *hist_nvl = fnvlist_alloc();
        uint64_t uint64;
-       char *string;
+       const char *string;
 
        if (nvlist_lookup_string(nvl, ZPOOL_HIST_CMD, &string) == 0)
                fnvlist_add_string(hist_nvl, ZFS_EV_HIST_CMD, string);
index 8466fa80e1e3386628bf677cbb113477fc087044..1475a4a53f4a3d30589fea2f1eb3bbab9905190a 100644 (file)
@@ -2307,7 +2307,7 @@ spa_import_progress_add(spa_t *spa)
 {
        spa_history_list_t *shl = spa_import_progress_list;
        spa_import_progress_t *sip;
-       char *poolname = NULL;
+       const char *poolname = NULL;
 
        sip = kmem_zalloc(sizeof (spa_import_progress_t), KM_SLEEP);
        sip->pool_guid = spa_guid(spa);
index 4922067dc8e9fd5ded8a759cd8411a5b69266ce2..1af5baeecd2db258c25c5b6dc4b9481c9311e5c5 100644 (file)
@@ -727,11 +727,11 @@ vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *nv, vdev_t *parent, uint_t id,
     int alloctype)
 {
        vdev_ops_t *ops;
-       char *type;
+       const char *type;
        uint64_t guid = 0, islog;
        vdev_t *vd;
        vdev_indirect_config_t *vic;
-       char *tmp = NULL;
+       const char *tmp = NULL;
        int rc;
        vdev_alloc_bias_t alloc_bias = VDEV_BIAS_NONE;
        boolean_t top_level = (parent && !parent->vdev_parent);
@@ -786,7 +786,7 @@ vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *nv, vdev_t *parent, uint_t id,
                return (SET_ERROR(ENOTSUP));
 
        if (top_level && alloctype == VDEV_ALLOC_ADD) {
-               char *bias;
+               const char *bias;
 
                /*
                 * If creating a top-level vdev, check for allocation
@@ -832,8 +832,8 @@ vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *nv, vdev_t *parent, uint_t id,
        if (top_level && alloc_bias != VDEV_BIAS_NONE)
                vd->vdev_alloc_bias = alloc_bias;
 
-       if (nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &vd->vdev_path) == 0)
-               vd->vdev_path = spa_strdup(vd->vdev_path);
+       if (nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &tmp) == 0)
+               vd->vdev_path = spa_strdup(tmp);
 
        /*
         * ZPOOL_CONFIG_AUX_STATE = "external" means we previously forced a
@@ -847,18 +847,17 @@ vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *nv, vdev_t *parent, uint_t id,
                vd->vdev_label_aux = VDEV_AUX_EXTERNAL;
        }
 
-       if (nvlist_lookup_string(nv, ZPOOL_CONFIG_DEVID, &vd->vdev_devid) == 0)
-               vd->vdev_devid = spa_strdup(vd->vdev_devid);
-       if (nvlist_lookup_string(nv, ZPOOL_CONFIG_PHYS_PATH,
-           &vd->vdev_physpath) == 0)
-               vd->vdev_physpath = spa_strdup(vd->vdev_physpath);
+       if (nvlist_lookup_string(nv, ZPOOL_CONFIG_DEVID, &tmp) == 0)
+               vd->vdev_devid = spa_strdup(tmp);
+       if (nvlist_lookup_string(nv, ZPOOL_CONFIG_PHYS_PATH, &tmp) == 0)
+               vd->vdev_physpath = spa_strdup(tmp);
 
        if (nvlist_lookup_string(nv, ZPOOL_CONFIG_VDEV_ENC_SYSFS_PATH,
-           &vd->vdev_enc_sysfs_path) == 0)
-               vd->vdev_enc_sysfs_path = spa_strdup(vd->vdev_enc_sysfs_path);
+           &tmp) == 0)
+               vd->vdev_enc_sysfs_path = spa_strdup(tmp);
 
-       if (nvlist_lookup_string(nv, ZPOOL_CONFIG_FRU, &vd->vdev_fru) == 0)
-               vd->vdev_fru = spa_strdup(vd->vdev_fru);
+       if (nvlist_lookup_string(nv, ZPOOL_CONFIG_FRU, &tmp) == 0)
+               vd->vdev_fru = spa_strdup(tmp);
 
        /*
         * Set the whole_disk property.  If it's not specified, leave the value
@@ -989,7 +988,7 @@ vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *nv, vdev_t *parent, uint_t id,
                            &vd->vdev_removed);
 
                        if (vd->vdev_faulted || vd->vdev_degraded) {
-                               char *aux;
+                               const char *aux;
 
                                vd->vdev_label_aux =
                                    VDEV_AUX_ERR_EXCEEDED;
@@ -5624,7 +5623,7 @@ vdev_replace_in_progress(vdev_t *vdev)
  * Add a (source=src, propname=propval) list to an nvlist.
  */
 static void
-vdev_prop_add_list(nvlist_t *nvl, const char *propname, char *strval,
+vdev_prop_add_list(nvlist_t *nvl, const char *propname, const char *strval,
     uint64_t intval, zprop_source_t src)
 {
        nvlist_t *propval;
@@ -5664,7 +5663,7 @@ vdev_props_set_sync(void *arg, dmu_tx_t *tx)
 
        while ((elem = nvlist_next_nvpair(nvprops, elem)) != NULL) {
                uint64_t intval, objid = 0;
-               char *strval;
+               const char *strval;
                vdev_prop_t prop;
                const char *propname = nvpair_name(elem);
                zprop_type_t proptype;
@@ -5760,10 +5759,10 @@ vdev_prop_set(vdev_t *vd, nvlist_t *innvl, nvlist_t *outnvl)
                return (SET_ERROR(EINVAL));
 
        while ((elem = nvlist_next_nvpair(nvprops, elem)) != NULL) {
-               char *propname = nvpair_name(elem);
+               const char *propname = nvpair_name(elem);
                vdev_prop_t prop = vdev_name_to_prop(propname);
                uint64_t intval = 0;
-               char *strval = NULL;
+               const char *strval = NULL;
 
                if (prop == VDEV_PROP_USERPROP && !vdev_prop_user(propname)) {
                        error = EINVAL;
index c46dc0c5eccee6967afaa935479af47732168b5e..307e2353d020550be1a2cedc552558b39ea089da 100644 (file)
@@ -2720,7 +2720,7 @@ vdev_draid_spare_lookup(spa_t *spa, nvlist_t *nv, uint64_t *top_guidp,
                return (SET_ERROR(ENOENT));
        }
 
-       char *spare_name;
+       const char *spare_name;
        error = nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &spare_name);
        if (error != 0)
                return (SET_ERROR(EINVAL));
@@ -2728,7 +2728,7 @@ vdev_draid_spare_lookup(spa_t *spa, nvlist_t *nv, uint64_t *top_guidp,
        for (int i = 0; i < nspares; i++) {
                nvlist_t *spare = spares[i];
                uint64_t top_guid, spare_id;
-               char *type, *path;
+               const char *type, *path;
 
                /* Skip non-distributed spares */
                error = nvlist_lookup_string(spare, ZPOOL_CONFIG_TYPE, &type);
index 6e47c8cb69e20ce705136d80827d629319b93726..d81bc29f2bc4ed79953ff4096ebae64d505bbaaf 100644 (file)
@@ -1359,6 +1359,7 @@ vdev_label_write_bootenv(vdev_t *vd, nvlist_t *env)
        int error;
        size_t nvsize;
        char *nvbuf;
+       const char *tmp;
 
        error = nvlist_size(env, &nvsize, NV_ENCODE_XDR);
        if (error != 0)
@@ -1398,8 +1399,8 @@ vdev_label_write_bootenv(vdev_t *vd, nvlist_t *env)
        bootenv->vbe_version = fnvlist_lookup_uint64(env, BOOTENV_VERSION);
        switch (bootenv->vbe_version) {
        case VB_RAW:
-               if (nvlist_lookup_string(env, GRUB_ENVMAP, &nvbuf) == 0) {
-                       (void) strlcpy(bootenv->vbe_bootenv, nvbuf, nvsize);
+               if (nvlist_lookup_string(env, GRUB_ENVMAP, &tmp) == 0) {
+                       (void) strlcpy(bootenv->vbe_bootenv, tmp, nvsize);
                }
                error = 0;
                break;
index aaa88eb89e10de1e4474c1fff7021c76326dd9a3..1249657f9d729cda894c2390f9f73de6c742eccf 100644 (file)
@@ -2414,7 +2414,7 @@ spa_vdev_remove(spa_t *spa, uint64_t guid, boolean_t unspare)
                 * in this pool.
                 */
                if (vd == NULL || unspare) {
-                       char *type;
+                       const char *type;
                        boolean_t draid_spare = B_FALSE;
 
                        if (nvlist_lookup_string(nv, ZPOOL_CONFIG_TYPE, &type)
index 89ed4f91faa30b582305cb75883255440cf8ac9a..959404f665ab763adb74211771387a283747f645 100644 (file)
@@ -544,7 +544,7 @@ zcp_nvpair_value_to_lua(lua_State *state, nvpair_t *pair,
                    fnvpair_value_nvlist(pair), errbuf, errbuf_len);
                break;
        case DATA_TYPE_STRING_ARRAY: {
-               char **strarr;
+               const char **strarr;
                uint_t nelem;
                (void) nvpair_value_string_array(pair, &strarr, &nelem);
                lua_newtable(state);
index f28266b8095fb3e4620c33d67e322f276045665d..6fd45151d92a034f2edf8b168fb334552a26a7f3 100644 (file)
@@ -391,7 +391,7 @@ get_special_prop(lua_State *state, dsl_dataset_t *ds, const char *dsname,
                dsl_dataset_crypt_stats(ds, nvl);
                if (nvlist_lookup_nvlist(nvl, zfs_prop_to_name(zfs_prop),
                    &propval) == 0) {
-                       char *source;
+                       const char *source;
 
                        (void) nvlist_lookup_uint64(propval, ZPROP_VALUE,
                            &numval);
index ed575738fc8b2ff332870cb898eac0a3dd266585..2da0bf9740e50f64eb209843f54f72545bc28ae6 100644 (file)
@@ -333,7 +333,7 @@ zcp_user_props_list_gc(lua_State *state)
 static int
 zcp_user_props_iter(lua_State *state)
 {
-       char *source, *val;
+       const char *source, *val;
        nvlist_t *nvprop;
        nvlist_t **props = lua_touserdata(state, lua_upvalueindex(1));
        nvpair_t *pair = lua_touserdata(state, lua_upvalueindex(2));
index e2e066b0e99b7226b0b5957f92c3987bd2667deb..44aaae9c12644aa60e6053f718df9700696c211e 100644 (file)
@@ -133,7 +133,7 @@ zfs_fuid_table_load(objset_t *os, uint64_t fuid_obj, avl_tree_t *idx_tree,
 
                for (i = 0; i != count; i++) {
                        fuid_domain_t *domnode;
-                       char *domain;
+                       const char *domain;
                        uint64_t idx;
 
                        VERIFY(nvlist_lookup_string(fuidnvp[i], FUID_DOMAIN,
index 9b859adc5551b47a9882103dbb5243e6ae2676a1..22e644f75f955e42166f5f7ad33c32722759ce0d 100644 (file)
@@ -604,7 +604,7 @@ static int
 zfs_secpolicy_setprop(const char *dsname, zfs_prop_t prop, nvpair_t *propval,
     cred_t *cr)
 {
-       char *strval;
+       const char *strval;
 
        /*
         * Check permissions for special properties.
@@ -935,7 +935,7 @@ zfs_secpolicy_snapshot(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr)
 
        for (pair = nvlist_next_nvpair(snaps, NULL); pair != NULL;
            pair = nvlist_next_nvpair(snaps, pair)) {
-               char *name = nvpair_name(pair);
+               char *name = (char *)nvpair_name(pair);
                char *atp = strchr(name, '@');
 
                if (atp == NULL) {
@@ -962,7 +962,7 @@ zfs_secpolicy_bookmark(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr)
 
        for (nvpair_t *pair = nvlist_next_nvpair(innvl, NULL);
            pair != NULL; pair = nvlist_next_nvpair(innvl, pair)) {
-               char *name = nvpair_name(pair);
+               char *name = (char *)nvpair_name(pair);
                char *hashp = strchr(name, '#');
 
                if (hashp == NULL) {
@@ -988,7 +988,7 @@ zfs_secpolicy_destroy_bookmarks(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr)
 
        for (pair = nvlist_next_nvpair(innvl, NULL); pair != NULL;
            pair = nextpair) {
-               char *name = nvpair_name(pair);
+               char *name = (char *)nvpair_name(pair);
                char *hashp = strchr(name, '#');
                nextpair = nvlist_next_nvpair(innvl, pair);
 
@@ -1036,9 +1036,9 @@ zfs_secpolicy_log_history(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr)
 static int
 zfs_secpolicy_create_clone(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr)
 {
-       char    parentname[ZFS_MAX_DATASET_NAME_LEN];
-       int     error;
-       char    *origin;
+       char            parentname[ZFS_MAX_DATASET_NAME_LEN];
+       int             error;
+       const char      *origin;
 
        if ((error = zfs_get_parent(zc->zc_name, parentname,
            sizeof (parentname))) != 0)
@@ -1460,7 +1460,7 @@ zfs_ioc_pool_create(zfs_cmd_t *zc)
                nvlist_t *nvl = NULL;
                nvlist_t *hidden_args = NULL;
                uint64_t version = SPA_VERSION;
-               char *tname;
+               const char *tname;
 
                (void) nvlist_lookup_uint64(props,
                    zpool_prop_to_name(ZPOOL_PROP_VERSION), &version);
@@ -3916,7 +3916,7 @@ static int
 zfs_ioc_channel_program(const char *poolname, nvlist_t *innvl,
     nvlist_t *outnvl)
 {
-       char *program;
+       const char *program;
        uint64_t instrlimit, memlimit;
        boolean_t sync_flag;
        nvpair_t *nvarg = NULL;
@@ -4336,7 +4336,7 @@ zfs_ioc_rollback(const char *fsname, nvlist_t *innvl, nvlist_t *outnvl)
 {
        zfsvfs_t *zfsvfs;
        zvol_state_handle_t *zv;
-       char *target = NULL;
+       const char *target = NULL;
        int error;
 
        (void) nvlist_lookup_string(innvl, "target", &target);
@@ -4412,7 +4412,7 @@ zfs_ioc_redact(const char *snapname, nvlist_t *innvl, nvlist_t *outnvl)
 {
        (void) outnvl;
        nvlist_t *redactnvl = NULL;
-       char *redactbook = NULL;
+       const char *redactbook = NULL;
 
        if (nvlist_lookup_nvlist(innvl, "snapnv", &redactnvl) != 0)
                return (SET_ERROR(EINVAL));
@@ -4808,10 +4808,10 @@ propval_equals(nvpair_t *p1, nvpair_t *p2)
                return (B_FALSE);
 
        if (nvpair_type(p1) == DATA_TYPE_STRING) {
-               char *valstr1, *valstr2;
+               const char *valstr1, *valstr2;
 
-               VERIFY(nvpair_value_string(p1, (char **)&valstr1) == 0);
-               VERIFY(nvpair_value_string(p2, (char **)&valstr2) == 0);
+               VERIFY(nvpair_value_string(p1, &valstr1) == 0);
+               VERIFY(nvpair_value_string(p2, &valstr2) == 0);
                return (strcmp(valstr1, valstr2) == 0);
        } else {
                uint64_t intval1, intval2;
@@ -4932,9 +4932,9 @@ static boolean_t zfs_ioc_recv_inject_err;
  * encountered errors, if any. It's the callers responsibility to free.
  */
 static int
-zfs_ioc_recv_impl(char *tofs, char *tosnap, char *origin, nvlist_t *recvprops,
-    nvlist_t *localprops, nvlist_t *hidden_args, boolean_t force,
-    boolean_t heal, boolean_t resumable, int input_fd,
+zfs_ioc_recv_impl(char *tofs, char *tosnap, const char *origin,
+    nvlist_t *recvprops, nvlist_t *localprops, nvlist_t *hidden_args,
+    boolean_t force, boolean_t heal, boolean_t resumable, int input_fd,
     dmu_replay_record_t *begin_record, uint64_t *read_bytes,
     uint64_t *errflags, nvlist_t **errors)
 {
@@ -5280,7 +5280,7 @@ zfs_ioc_recv(zfs_cmd_t *zc)
        nvlist_t *errors = NULL;
        nvlist_t *recvdprops = NULL;
        nvlist_t *localprops = NULL;
-       char *origin = NULL;
+       const char *origin = NULL;
        char *tosnap;
        char tofs[ZFS_MAX_DATASET_NAME_LEN];
        int error = 0;
@@ -5382,8 +5382,8 @@ zfs_ioc_recv_new(const char *fsname, nvlist_t *innvl, nvlist_t *outnvl)
        nvlist_t *recvprops = NULL;
        nvlist_t *localprops = NULL;
        nvlist_t *hidden_args = NULL;
-       char *snapname;
-       char *origin = NULL;
+       const char *snapname;
+       const char *origin = NULL;
        char *tosnap;
        char tofs[ZFS_MAX_DATASET_NAME_LEN];
        boolean_t force;
@@ -6232,7 +6232,7 @@ zfs_ioc_hold(const char *pool, nvlist_t *args, nvlist_t *errlist)
        /* make sure the user didn't pass us any invalid (empty) tags */
        for (pair = nvlist_next_nvpair(holds, NULL); pair != NULL;
            pair = nvlist_next_nvpair(holds, pair)) {
-               char *htag;
+               const char *htag;
 
                error = nvpair_value_string(pair, &htag);
                if (error != 0)
@@ -6452,7 +6452,7 @@ zfs_ioc_space_snaps(const char *lastsnap, nvlist_t *innvl, nvlist_t *outnvl)
        int error;
        dsl_pool_t *dp;
        dsl_dataset_t *new, *old;
-       char *firstsnap;
+       const char *firstsnap;
        uint64_t used, comp, uncomp;
 
        firstsnap = fnvlist_lookup_string(innvl, "firstsnap");
@@ -6533,7 +6533,7 @@ zfs_ioc_send_new(const char *snapname, nvlist_t *innvl, nvlist_t *outnvl)
        (void) outnvl;
        int error;
        offset_t off;
-       char *fromname = NULL;
+       const char *fromname = NULL;
        int fd;
        zfs_file_t *fp;
        boolean_t largeblockok;
@@ -6543,7 +6543,7 @@ zfs_ioc_send_new(const char *snapname, nvlist_t *innvl, nvlist_t *outnvl)
        boolean_t savedok;
        uint64_t resumeobj = 0;
        uint64_t resumeoff = 0;
-       char *redactbook = NULL;
+       const char *redactbook = NULL;
 
        fd = fnvlist_lookup_int32(innvl, "fd");
 
@@ -6633,8 +6633,8 @@ zfs_ioc_send_space(const char *snapname, nvlist_t *innvl, nvlist_t *outnvl)
        dsl_dataset_t *tosnap;
        dsl_dataset_t *fromsnap = NULL;
        int error;
-       char *fromname = NULL;
-       char *redactlist_book = NULL;
+       const char *fromname = NULL;
+       const char *redactlist_book = NULL;
        boolean_t largeblockok;
        boolean_t embedok;
        boolean_t compressok;
@@ -7378,7 +7378,7 @@ zfs_check_input_nvpairs(nvlist_t *innvl, const zfs_ioc_vec_t *vec)
         */
        for (nvpair_t *pair = nvlist_next_nvpair(innvl, NULL);
            pair != NULL; pair = nvlist_next_nvpair(innvl, pair)) {
-               char *name = nvpair_name(pair);
+               const char *name = nvpair_name(pair);
                data_type_t type = nvpair_type(pair);
                boolean_t identified = B_FALSE;
 
index 3e5ff59f7399a13633c2f70946136fb767862e3b..fdcec7bc69581ad29a1774a21382ffa20ae9d8fc 100644 (file)
@@ -1267,7 +1267,7 @@ draid_merge_impl(nvlist_t *allcfgs, const char *srcfilename, int *mergedp)
                uint64_t nv_worst_ratio;
                uint64_t allcfg_worst_ratio;
                nvlist_t *cfg, *allcfg;
-               char *key;
+               const char *key;
 
                switch (nvpair_type(elem)) {
                case DATA_TYPE_NVLIST:
index 392f5952d27a59bca15a81c1ac693a2d8b61ae8d..42168997c0a8179d174640a4767eed991f42903f 100644 (file)
@@ -62,7 +62,7 @@ static const char *const criteria_name[] = {
 static void
 print_ereport_line(nvlist_t *nvl)
 {
-       char *class;
+       const char *class;
        int last = CRITERIA_NAMES_COUNT - 1;
 
        /*
@@ -81,7 +81,7 @@ print_ereport_line(nvlist_t *nvl)
                nvpair_t *nvp;
                uint32_t i32 = 0;
                uint64_t i64 = 0;
-               char *str = NULL;
+               const char *str = NULL;
 
                if (nvlist_lookup_nvpair(nvl, criteria_name[i], &nvp) != 0) {
                        /* print a proxy for optional criteria */
index 3da69397a9935f0f37064c9756f8a9e6efe72ef9..57a8f51e1cc03932612dc0a2c542940f58911cd0 100644 (file)
@@ -39,7 +39,7 @@ nvlist_equal(nvlist_t *nvla, nvlist_t *nvlb)
         */
        for (nvpair_t *pair = nvlist_next_nvpair(nvla, NULL);
            pair != NULL; pair = nvlist_next_nvpair(nvla, pair)) {
-               char *key = nvpair_name(pair);
+               const char *key = nvpair_name(pair);
 
                if (!nvlist_exists(nvlb, key))
                        return (B_FALSE);