]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
use update_recordsandbytes in rbt_datafixer
authorMark Andrews <marka@isc.org>
Tue, 19 Nov 2019 03:46:08 +0000 (14:46 +1100)
committerOndřej Surý <ondrej@isc.org>
Tue, 19 Nov 2019 16:17:51 +0000 (00:17 +0800)
lib/dns/rbtdb.c

index 0a2b62ec79d84715636ce7b7c21fe9cf3931d39c..5aa227c3c53ccd778ced9b6595817ed335127fcd 100644 (file)
@@ -7082,12 +7082,6 @@ rbt_datafixer(dns_rbtnode_t *rbtnode, void *base, size_t filesize,
        for (header = rbtnode->data; header != NULL; header = header->next) {
                unsigned char *p = (unsigned char *) header;
                size_t size = dns_rdataslab_size(p, sizeof(*header));
-               unsigned int count = dns_rdataslab_count(p, sizeof(*header));;
-               RWLOCK(&rbtdb->current_version->rwlock, isc_rwlocktype_write);
-               rbtdb->current_version->records += count;
-               rbtdb->current_version->bytes += size;
-               RWUNLOCK(&rbtdb->current_version->rwlock,
-                        isc_rwlocktype_write);
                isc_crc64_update(crc, p, size);
 #ifdef DEBUG
                hexdump("hashing header", p, sizeof(rdatasetheader_t));
@@ -7119,6 +7113,7 @@ rbt_datafixer(dns_rbtnode_t *rbtnode, void *base, size_t filesize,
                            (header->next > (rdatasetheader_t *) limit))
                                return (ISC_R_INVALIDFILE);
                }
+               update_recordsandbytes(true, rbtdb->current_version, header);
        }
 
        return (ISC_R_SUCCESS);