projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
axmap: use 64-bit type for number of bits
[fio.git]
/
lib
/
axmap.c
diff --git
a/lib/axmap.c
b/lib/axmap.c
index 03e712f53be7a7623f90b12a3eecf57d73fc6f62..767a73177d3f0b7e58837441f7d46fece03652b2 100644
(file)
--- a/
lib/axmap.c
+++ b/
lib/axmap.c
@@
-110,7
+110,7
@@
void axmap_free(struct axmap *axmap)
}
/* Allocate memory for a set that can store the numbers 0 .. @nr_bits - 1. */
}
/* Allocate memory for a set that can store the numbers 0 .. @nr_bits - 1. */
-struct axmap *axmap_new(u
nsigned long
nr_bits)
+struct axmap *axmap_new(u
int64_t
nr_bits)
{
struct axmap *axmap;
unsigned int i, levels;
{
struct axmap *axmap;
unsigned int i, levels;
@@
-135,13
+135,14
@@
struct axmap *axmap_new(unsigned long nr_bits)
for (i = 0; i < axmap->nr_levels; i++) {
struct axmap_level *al = &axmap->levels[i];
for (i = 0; i < axmap->nr_levels; i++) {
struct axmap_level *al = &axmap->levels[i];
+ nr_bits = (nr_bits + BLOCKS_PER_UNIT - 1) >> UNIT_SHIFT;
+
al->level = i;
al->level = i;
- al->map_size =
(nr_bits + BLOCKS_PER_UNIT - 1) >> UNIT_SHIFT
;
+ al->map_size =
nr_bits
;
al->map = malloc(al->map_size * sizeof(unsigned long));
if (!al->map)
goto free_levels;
al->map = malloc(al->map_size * sizeof(unsigned long));
if (!al->map)
goto free_levels;
- nr_bits = (nr_bits + BLOCKS_PER_UNIT - 1) >> UNIT_SHIFT;
}
axmap_reset(axmap);
}
axmap_reset(axmap);