recvd_props_mode: use a uintptr_t to stash nvlists

Avoid assuming than a uint64_t can hold a pointer.

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Signed-off-by: Brooks Davis <brooks.davis@sri.com>
Closes #14131
This commit is contained in:
Brooks Davis 2022-10-27 23:25:42 +01:00 committed by Brian Behlendorf
parent 250b2bac78
commit 877790001e
1 changed files with 5 additions and 5 deletions

View File

@ -2087,16 +2087,16 @@ zfs_is_recvd_props_mode(zfs_handle_t *zhp)
} }
static void static void
zfs_set_recvd_props_mode(zfs_handle_t *zhp, uint64_t *cookie) zfs_set_recvd_props_mode(zfs_handle_t *zhp, uintptr_t *cookie)
{ {
*cookie = (uint64_t)(uintptr_t)zhp->zfs_props; *cookie = (uintptr_t)zhp->zfs_props;
zhp->zfs_props = zhp->zfs_recvd_props; zhp->zfs_props = zhp->zfs_recvd_props;
} }
static void static void
zfs_unset_recvd_props_mode(zfs_handle_t *zhp, uint64_t *cookie) zfs_unset_recvd_props_mode(zfs_handle_t *zhp, uintptr_t *cookie)
{ {
zhp->zfs_props = (nvlist_t *)(uintptr_t)*cookie; zhp->zfs_props = (nvlist_t *)*cookie;
*cookie = 0; *cookie = 0;
} }
@ -2373,7 +2373,7 @@ zfs_prop_get_recvd(zfs_handle_t *zhp, const char *propname, char *propbuf,
prop = zfs_name_to_prop(propname); prop = zfs_name_to_prop(propname);
if (prop != ZPROP_USERPROP) { if (prop != ZPROP_USERPROP) {
uint64_t cookie; uintptr_t cookie;
if (!nvlist_exists(zhp->zfs_recvd_props, propname)) if (!nvlist_exists(zhp->zfs_recvd_props, propname))
return (-1); return (-1);
zfs_set_recvd_props_mode(zhp, &cookie); zfs_set_recvd_props_mode(zhp, &cookie);