At the heart of the blist allocator is a union:
typedef struct blmeta {
union {
daddr_t bmu_avail; /* space available under us */
u_daddr_t bmu_bitmap; /* bitmap if we are a leaf */
} u;
daddr_t bm_bighint; /* biggest contiguous block hint*/
} blmeta_t;
At some point in the distant past, ```daddr_t``` became a 64-bit integer, but ```u_daddr_t```, which is defined locally by the blist allocator, was not extended from 32 to 64 bits. Consequently, the blist allocator started allocating twice as much memory to manage the same amount of swap space. This change updates the size of ```u_daddr_t``` to be 64 bits. This also requires a couple casts to be introduced where a 32-bit integer constant is being shifted to create a bit mask of type ```u_daddr_t```.