The helper macros for accessing file layout fields of an on-disk
ceph file layout structure cast their results to type (__s32). This
is a bit strange, since (with one exception--fl_pg_preferred):
- there is no need for negative values; and
- all users of these macros are assigning their result to
64-bit variables.
So just make these macros return a 64-bit unsigned type.
The exception is the preferred placement group, which remains a
signed 32-bit value. A placement group id encodes the preferred
primary OSD in a 16-bit value, and there's no sense at this point
getting too far away from that.
And finally, the fl_cas_hash and fl_object_stripe_unit fields are
essentially unused, but are both 32 bits and signed. Keep their
size, but make them unsigned, since neither a hash nor a stripe
unit has any business having a negative value.