Fix type mismatch on 32-bit systems

The umem_alloc_aligned() function should not assume that a 'void *'
type is 64-bit.  It will not be on 32-bit platforms.  Rather than
complicating the ASSERT to handle this it is simply removed.

Additionally, the '%lu' format specifier should not be assumed to
imply a 64-bit value.  Fix this by using the 'llu' format specifier
which will always be atleast 64-bit and explicitly casing the
variable to an u_longlong_t.  This issue is handled the same way
in many other parts of the code.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2015-05-11 12:05:05 -07:00
parent f9cab37291
commit 3df293404a
2 changed files with 6 additions and 5 deletions

View File

@ -109,8 +109,6 @@ umem_alloc_aligned(size_t size, size_t align, int flags)
return (NULL);
}
ASSERT0(P2PHASE_TYPED(ptr, align, uint64_t));
return (ptr);
}

View File

@ -2179,7 +2179,8 @@ again:
needagain = B_TRUE;
else
progress = B_TRUE;
sprintf(guidname, "%lu", thisguid);
sprintf(guidname, "%llu",
(u_longlong_t)thisguid);
nvlist_add_boolean(deleted, guidname);
continue;
}
@ -2236,7 +2237,8 @@ again:
needagain = B_TRUE;
else
progress = B_TRUE;
sprintf(guidname, "%lu", parent_fromsnap_guid);
sprintf(guidname, "%llu",
(u_longlong_t) parent_fromsnap_guid);
nvlist_add_boolean(deleted, guidname);
continue;
}
@ -2269,7 +2271,8 @@ again:
if (stream_parent_fromsnap_guid != 0 &&
parent_fromsnap_guid != 0 &&
stream_parent_fromsnap_guid != parent_fromsnap_guid) {
sprintf(guidname, "%lu", parent_fromsnap_guid);
sprintf(guidname, "%llu",
(u_longlong_t) parent_fromsnap_guid);
if (nvlist_exists(deleted, guidname)) {
progress = B_TRUE;
needagain = B_TRUE;