diff --git a/src/borg/_hashindex.c b/src/borg/_hashindex.c index da378f45c..7eb1f5ea0 100644 --- a/src/borg/_hashindex.c +++ b/src/borg/_hashindex.c @@ -749,8 +749,7 @@ hashindex_set(HashIndex *index, const unsigned char *key, const void *value) } idx = start_idx; if(BUCKET_IS_EMPTY(index, idx)){ - index->num_empty--; - if(index->num_empty < index->min_empty) { + if(index->num_empty <= index->min_empty) { /* too many tombstones here / not enough empty buckets, do a same-size rebuild */ if(!hashindex_resize(index, index->num_buckets)) { return 0; @@ -763,6 +762,7 @@ hashindex_set(HashIndex *index, const unsigned char *key, const void *value) assert(BUCKET_IS_EMPTY(index, start_idx)); idx = start_idx; } + index->num_empty--; } else { /* Bucket must be either EMPTY (see above) or DELETED. */ assert(BUCKET_IS_DELETED(index, idx));