From: Wayne Davison Date: Fri, 16 Jul 2004 18:04:23 +0000 (+0000) Subject: - Limit the maximum block size we compute for a file. X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/efd5ee57867a5de86692dff3ec0067c4113980fa - Limit the maximum block size we compute for a file. - Set max_map_size based on the current file's block size (so that map_ptr() is more efficient with large blocks). --- diff --git a/generator.c b/generator.c index ffd7a0d3..72b69056 100644 --- a/generator.c +++ b/generator.c @@ -52,6 +52,7 @@ extern int only_existing; extern int orig_umask; extern int safe_symlinks; extern unsigned int block_size; +extern unsigned int max_map_size; extern struct exclude_list_struct server_exclude_list; @@ -162,7 +163,9 @@ static void sum_sizes_sqroot(struct sum_struct *sum, uint64 len) c >>= 1; } while (c >= 8); /* round to multiple of 8 */ blength = MAX(blength, BLOCK_SIZE); + blength = MIN(blength, MAX_MAP_SIZE); } + max_map_size = MIN(MAX_MAP_SIZE, blength * 32); if (protocol_version < 27) { s2length = csum_length;