lib/rand: cleanup __fill_random_buffer()
Signed-off-by: Jens Axboe <axboe@fb.com>
diff --git a/lib/rand.c b/lib/rand.c
index 32aec20..185b679 100644
--- a/lib/rand.c
+++ b/lib/rand.c
@@ -72,23 +72,23 @@
void *ptr = buf;
while (len) {
+ int this_len;
+
if (len >= sizeof(int64_t)) {
*((int64_t *) ptr) = seed;
- ptr += sizeof(int64_t);
- len -= sizeof(int64_t);
+ this_len = sizeof(int64_t);
} else if (len >= sizeof(int32_t)) {
*((int32_t *) ptr) = seed;
- ptr += sizeof(int32_t);
- len -= sizeof(int32_t);
+ this_len = sizeof(int32_t);
} else if (len >= sizeof(int16_t)) {
*((int16_t *) ptr) = seed;
- ptr += sizeof(int16_t);
- len -= sizeof(int16_t);
+ this_len = sizeof(int16_t);
} else {
*((int8_t *) ptr) = seed;
- ptr += sizeof(int8_t);
- len -= sizeof(int8_t);
+ this_len = sizeof(int8_t);
}
+ ptr += this_len;
+ len -= this_len;
seed *= GOLDEN_RATIO_PRIME;
seed >>= 3;
}