summaryrefslogtreecommitdiff
path: root/src/path.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/path.c')
-rw-r--r--src/path.c21
1 files changed, 1 insertions, 20 deletions
diff --git a/src/path.c b/src/path.c
index dc88aa1..2feb52e 100644
--- a/src/path.c
+++ b/src/path.c
@@ -13,22 +13,6 @@
#include <message.h>
-/* util */
-static int get_page_mask(void)
-{
- long page_sz = sysconf(_SC_PAGESIZE);
- size_t page_mask = 0;
- int n;
-
- for (n = 0; page_sz > 0; page_sz >>= 1, n++) {
- page_mask <<= 1;
- page_mask |= 1;
- }
-
- return page_mask >> 1;
-}
-
-
/* chunk pool operations */
#define CHUNK_POOL_STATE_FILLING 0
#define CHUNK_POOL_STATE_FILLED 1
@@ -174,19 +158,16 @@ static struct chunk *alloc_chunk(struct path *p)
static int resolve_chunk(struct path *p, struct path_resolve_args *a)
{
struct chunk *c;
- size_t page_mask;
size_t chunk_sz;
size_t size;
- page_mask = get_page_mask();
-
if (p->size <= a->min_chunk_sz)
chunk_sz = p->size;
else if (a->max_chunk_sz)
chunk_sz = a->max_chunk_sz;
else {
chunk_sz = (p->size - (p->size % a->nr_conn)) / a->nr_conn;
- chunk_sz &= ~page_mask; /* align with page_sz */
+ chunk_sz &= ~a->chunk_align; /* align with page_sz */
if (chunk_sz <= a->min_chunk_sz)
chunk_sz = a->min_chunk_sz;
}