summaryrefslogtreecommitdiff
path: root/src/path.c
diff options
context:
space:
mode:
authorRyo Nakamura <upa@haeena.net>2024-04-29 19:36:22 +0900
committerRyo Nakamura <upa@haeena.net>2024-04-29 19:36:22 +0900
commit235ba41c5b5adde50ec44deebcd4a5d97e2eb995 (patch)
tree42257e7686216492c1bc329a829ba4adae8312e1 /src/path.c
parent675126a8368503edee00854a5d82f9cc32524bc2 (diff)
default chunk size is filesize/(nr_conn*4) (Issue #20)
and clean-up chunk_sz related parts.
Diffstat (limited to 'src/path.c')
-rw-r--r--src/path.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/path.c b/src/path.c
index f85e20f..140ad36 100644
--- a/src/path.c
+++ b/src/path.c
@@ -102,13 +102,10 @@ static int resolve_chunk(struct path *p, size_t size, struct path_resolve_args *
size_t chunk_sz, off, len;
size_t remaind;
- if (size <= a->min_chunk_sz)
- chunk_sz = size;
- else if (a->max_chunk_sz)
+ if (a->max_chunk_sz)
chunk_sz = a->max_chunk_sz;
else {
- chunk_sz = (size - (size % a->nr_conn)) / a->nr_conn;
- chunk_sz &= ~a->chunk_align; /* align with page_sz */
+ chunk_sz = (size / (a->nr_conn * 4)) & a->chunk_align;
if (chunk_sz <= a->min_chunk_sz)
chunk_sz = a->min_chunk_sz;
}