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:
parent
250b2bac78
commit
877790001e
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user