From: Wayne Davison Date: Thu, 15 Sep 2022 17:25:32 +0000 (-0700) Subject: Pre-compute FILE_SUM_EXTRA_CNT. X-Git-Tag: v3.2.7pre1~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b27d2e6f31dc0f7bd259771121e778486030577;p=thirdparty%2Frsync.git Pre-compute FILE_SUM_EXTRA_CNT. --- diff --git a/checksum.c b/checksum.c index 68ea0fa0..b5363bca 100644 --- a/checksum.c +++ b/checksum.c @@ -104,7 +104,7 @@ const EVP_MD *xfer_sum_evp_md; int xfer_sum_len; struct name_num_item *file_sum_nni; /* used for the pre-transfer --checksum computations */ const EVP_MD *file_sum_evp_md; -int file_sum_len; +int file_sum_len, file_sum_extra_cnt; #ifdef USE_OPENSSL EVP_MD_CTX *ctx_evp = NULL; @@ -197,6 +197,8 @@ void parse_checksum_choice(int final_call) xfer_sum_evp_md = csum_evp_md(xfer_sum_nni); file_sum_evp_md = csum_evp_md(file_sum_nni); + file_sum_extra_cnt = (file_sum_len + EXTRA_LEN - 1) / EXTRA_LEN; + if (xfer_sum_nni->num == CSUM_NONE) whole_file = 1; diff --git a/rsync.h b/rsync.h index 0a5ff809..2c5e5376 100644 --- a/rsync.h +++ b/rsync.h @@ -826,7 +826,7 @@ extern int uid_ndx; extern int gid_ndx; extern int acls_ndx; extern int xattrs_ndx; -extern int file_sum_len; +extern int file_sum_extra_cnt; #ifdef USE_FLEXIBLE_ARRAY #define FILE_STRUCT_LEN (sizeof (struct file_struct)) @@ -837,7 +837,7 @@ extern int file_sum_len; #define DEV_EXTRA_CNT 2 #define DIRNODE_EXTRA_CNT 3 #define EXTRA64_CNT ((sizeof (union file_extras64) + EXTRA_LEN - 1) / EXTRA_LEN) -#define SUM_EXTRA_CNT ((file_sum_len + EXTRA_LEN - 1) / EXTRA_LEN) +#define SUM_EXTRA_CNT file_sum_extra_cnt #define REQ_EXTRA(f,ndx) ((union file_extras*)(f) - (ndx)) #define OPT_EXTRA(f,bump) ((union file_extras*)(f) - file_extra_cnt - 1 - (bump))