From 5b27d2e6f31dc0f7bd259771121e778486030577 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Thu, 15 Sep 2022 10:25:32 -0700 Subject: [PATCH] Pre-compute FILE_SUM_EXTRA_CNT. --- checksum.c | 4 +++- rsync.h | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) 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)) -- 2.47.2