- unsigned int i, j, num_traversals = 0;
- struct traverse_dep *dep;
-
- dep = talloc_array(NULL, struct traverse_dep, 1);
-
- /* Count them. */
- for (i = 0; i < num; i++) {
- for (j = 0; j < num_ops[i]; j++) {
- if (op[i][j].op == OP_TDB_TRAVERSE_START
- || op[i][j].op == OP_TDB_TRAVERSE_READ_START) {
- dep = talloc_realloc(NULL, dep,
- struct traverse_dep,
- num_traversals+1);
- dep[num_traversals].file = i;
- dep[num_traversals].op_num = j;
- dep[num_traversals].op = &op[i][j];
- num_traversals++;
- }
- }
- }
- qsort(dep, num_traversals, sizeof(dep[0]), compare_traverse_dep);
- for (i = 1; i < num_traversals; i++) {
- /* i depends on end of traverse i-1. */
- add_dependency(NULL, op, filename, dep[i].file, dep[i].op_num,
- dep[i-1].file, dep[i-1].op->trav->end);
- }
- talloc_free(dep);
-}
-#endif /* TRAVERSALS_TAKE_TRANSACTION_LOCK */
-
-static bool changes_db(const struct op *op)
-{
- return gives(op, NULL) != NULL;