Home | History | Annotate | Download | only in dns

Lines Matching defs:rollback

1226  * the bump chunk. It simplifies rollback because `fender` is always zero.
1228 * To rollback a transaction, we need to reset all the allocation
1234 * We do most of the transaction setup before creating the rollback
1235 * state so that after rollback we have a correct idea of which chunks
1238 * resetting the allocator, which we do after creating the rollback
1240 * will start from the rollback state and also reset the allocator as
1250 dns_qp_t *rollback = isc_mem_allocate(qp->mctx, sizeof(*rollback));
1251 memmove(rollback, qp, sizeof(*rollback));
1253 if (rollback->base != NULL) {
1254 INSIST(QPBASE_VALID(rollback->base));
1257 isc_refcount_increment(&rollback->base->refcount);
1259 rollback->usage = isc_mem_allocate(qp->mctx, usage_bytes);
1260 memmove(rollback->usage, qp->usage, usage_bytes);
1262 INSIST(multi->rollback == NULL);
1263 multi->rollback = rollback;
1279 INSIST(multi->rollback != NULL);
1281 if (qpbase_unref(multi->rollback)) {
1282 isc_mem_free(qp->mctx, multi->rollback->base);
1284 if (multi->rollback->usage != NULL) {
1285 isc_mem_free(qp->mctx, multi->rollback->usage);
1287 isc_mem_free(qp->mctx, multi->rollback);
1289 INSIST(multi->rollback == NULL);
1352 * we need to clear its base pointer in the rollback
1355 if (chunk < multi->rollback->chunk_max) {
1356 INSIST(!multi->rollback->usage[chunk].exists);
1357 multi->rollback->base->ptr[chunk] = NULL;
1364 * multi->rollback->base and multi->writer->base are the same,
1374 INSIST(multi->rollback != NULL);
1375 memmove(qp, multi->rollback, sizeof(*qp));
1376 isc_mem_free(qp->mctx, multi->rollback);
1377 INSIST(multi->rollback == NULL);
1382 LOG_STATS("qp rollback" PRItime "free %u chunks", time, nfree);
1640 REQUIRE(multi->rollback == NULL);