smalloc: cleanup and remove debug printf()
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/smalloc.c b/smalloc.c
index cdc9ed8..3b512bc 100644
--- a/smalloc.c
+++ b/smalloc.c
@@ -122,7 +122,6 @@
}
return 1;
-
}
static int mask_cmp(unsigned int *map, unsigned int mask)
@@ -200,8 +199,6 @@
void *ptr;
int fd, bitmap_blocks;
- printf("add pool %u\n", alloc_size);
-
strcpy(pool->file, "/tmp/.fio_smalloc.XXXXXX");
fd = mkstemp(pool->file);
if (fd < 0)
@@ -322,7 +319,7 @@
static void sfree_pool(struct pool *pool, void *ptr)
{
struct block_hdr *hdr;
- unsigned int nr_blocks, i, idx;
+ unsigned int i, idx;
unsigned long offset;
if (!ptr)
@@ -333,7 +330,6 @@
assert(ptr_valid(pool, ptr));
- nr_blocks = (hdr->size + SMALLOC_BPB - 1) / SMALLOC_BPB;
sfree_check_redzone(hdr);
offset = ptr - pool->map;
@@ -341,10 +337,10 @@
idx = (offset % SMALLOC_BPL) / SMALLOC_BPB;
pool_lock(pool);
- clear_blocks(&pool->bitmap[i], idx, nr_blocks);
+ clear_blocks(&pool->bitmap[i], idx, size_to_blocks(hdr->size));
if (i < pool->next_non_full)
pool->next_non_full = i;
- pool->free_blocks += nr_blocks;
+ pool->free_blocks += size_to_blocks(hdr->size);
pool_unlock(pool);
}
@@ -371,6 +367,11 @@
sfree_pool(pool, ptr);
}
+static inline unsigned int size_to_blocks(unsigned int size)
+{
+ return (size + SMALLOC_BPB - 1) / SMALLOC_BPB;
+}
+
static void *__smalloc_pool(struct pool *pool, unsigned int size)
{
unsigned int nr_blocks;
@@ -379,9 +380,9 @@
unsigned int last_idx;
void *ret = NULL;
- nr_blocks = (size + SMALLOC_BPB - 1) / SMALLOC_BPB;
-
pool_lock(pool);
+
+ nr_blocks = size_to_blocks(size);
if (nr_blocks > pool->free_blocks)
goto fail;