tdb 30 lib/tdb/common/dump.c static tdb_off_t tdb_dump_record(struct tdb_context *tdb, int hash, tdb 36 lib/tdb/common/dump.c if (tdb->methods->tdb_read(tdb, offset, (char *)&rec, tdb 49 lib/tdb/common/dump.c if (tdb_ofs_read(tdb, tailer_ofs, &tailer) == -1) { tdb 61 lib/tdb/common/dump.c static int tdb_dump_chain(struct tdb_context *tdb, int i) tdb 67 lib/tdb/common/dump.c if (tdb_lock(tdb, i, F_WRLCK) != 0) tdb 70 lib/tdb/common/dump.c if (tdb_ofs_read(tdb, top, &rec_ptr) == -1) tdb 71 lib/tdb/common/dump.c return tdb_unlock(tdb, i, F_WRLCK); tdb 77 lib/tdb/common/dump.c rec_ptr = tdb_dump_record(tdb, i, rec_ptr); tdb 80 lib/tdb/common/dump.c return tdb_unlock(tdb, i, F_WRLCK); tdb 83 lib/tdb/common/dump.c void tdb_dump_all(struct tdb_context *tdb) tdb 86 lib/tdb/common/dump.c for (i=0;i<tdb->header.hash_size;i++) { tdb 87 lib/tdb/common/dump.c tdb_dump_chain(tdb, i); tdb 90 lib/tdb/common/dump.c tdb_dump_chain(tdb, -1); tdb 93 lib/tdb/common/dump.c int tdb_printfreelist(struct tdb_context *tdb) tdb 100 lib/tdb/common/dump.c if ((ret = tdb_lock(tdb, -1, F_WRLCK)) != 0) tdb 106 lib/tdb/common/dump.c if (tdb_ofs_read(tdb, offset, &rec_ptr) == -1) { tdb 107 lib/tdb/common/dump.c tdb_unlock(tdb, -1, F_WRLCK); tdb 113 lib/tdb/common/dump.c if (tdb->methods->tdb_read(tdb, rec_ptr, (char *)&rec, tdb 115 lib/tdb/common/dump.c tdb_unlock(tdb, -1, F_WRLCK); tdb 121 lib/tdb/common/dump.c tdb_unlock(tdb, -1, F_WRLCK); tdb 135 lib/tdb/common/dump.c return tdb_unlock(tdb, -1, F_WRLCK); tdb 30 lib/tdb/common/error.c enum TDB_ERROR tdb_error(struct tdb_context *tdb) tdb 32 lib/tdb/common/error.c return tdb->ecode; tdb 49 lib/tdb/common/error.c const char *tdb_errorstr(struct tdb_context *tdb) tdb 53 lib/tdb/common/error.c if (tdb->ecode == emap[i].ecode) tdb 37 lib/tdb/common/freelist.c int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec) tdb 39 lib/tdb/common/freelist.c if (tdb->methods->tdb_read(tdb, off, rec, sizeof(*rec),DOCONV()) == -1) tdb 45 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_WARNING, "tdb_rec_free_read non-free magic 0x%x at offset=%d - fixing\n", tdb 48 lib/tdb/common/freelist.c if (tdb->methods->tdb_write(tdb, off, rec, sizeof(*rec)) == -1) tdb 54 lib/tdb/common/freelist.c tdb->ecode = TDB_ERR_CORRUPT; tdb 55 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_WARNING, "tdb_rec_free_read bad magic 0x%x at offset=%d\n", tdb 59 lib/tdb/common/freelist.c if (tdb->methods->tdb_oob(tdb, rec->next+sizeof(*rec), 0) != 0) tdb 67 lib/tdb/common/freelist.c static int remove_from_freelist(struct tdb_context *tdb, tdb_off_t off, tdb_off_t next) tdb 73 lib/tdb/common/freelist.c while (tdb_ofs_read(tdb, last_ptr, &i) != -1 && i != 0) { tdb 76 lib/tdb/common/freelist.c return tdb_ofs_write(tdb, last_ptr, &next); tdb 81 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"remove_from_freelist: not on list at off=%d\n", off)); tdb 88 lib/tdb/common/freelist.c static int update_tailer(struct tdb_context *tdb, tdb_off_t offset, tdb 95 lib/tdb/common/freelist.c return tdb_ofs_write(tdb, offset + totalsize - sizeof(tdb_off_t), tdb 101 lib/tdb/common/freelist.c int tdb_free(struct tdb_context *tdb, tdb_off_t offset, struct list_struct *rec) tdb 104 lib/tdb/common/freelist.c if (tdb_lock(tdb, -1, F_WRLCK) != 0) tdb 108 lib/tdb/common/freelist.c if (update_tailer(tdb, offset, rec) != 0) { tdb 109 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_free: update_tailer failed!\n")); tdb 115 lib/tdb/common/freelist.c if (offset + sizeof(*rec) + rec->rec_len + sizeof(*rec) <= tdb->map_size) { tdb 119 lib/tdb/common/freelist.c if (tdb->methods->tdb_read(tdb, right, &r, sizeof(r), DOCONV()) == -1) { tdb 120 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_free: right read failed at %u\n", right)); tdb 126 lib/tdb/common/freelist.c if (remove_from_freelist(tdb, right, r.next) == -1) { tdb 127 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_free: right free failed at %u\n", right)); tdb 131 lib/tdb/common/freelist.c if (update_tailer(tdb, offset, rec) == -1) { tdb 132 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_free: update_tailer failed at %u\n", offset)); tdb 141 lib/tdb/common/freelist.c if (offset - sizeof(tdb_off_t) > TDB_DATA_START(tdb->header.hash_size)) { tdb 147 lib/tdb/common/freelist.c if (tdb_ofs_read(tdb, left, &leftsize) == -1) { tdb 148 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_free: left offset read failed at %u\n", left)); tdb 160 lib/tdb/common/freelist.c left < TDB_DATA_START(tdb->header.hash_size)) { tdb 165 lib/tdb/common/freelist.c if (tdb->methods->tdb_read(tdb, left, &l, sizeof(l), DOCONV()) == -1) { tdb 166 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_free: left read failed at %u (%u)\n", left, leftsize)); tdb 176 lib/tdb/common/freelist.c if (tdb_rec_write(tdb, left, &l) == -1) { tdb 177 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_free: update_left failed at %u\n", left)); tdb 180 lib/tdb/common/freelist.c if (update_tailer(tdb, left, &l) == -1) { tdb 181 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_free: update_tailer failed at %u\n", offset)); tdb 184 lib/tdb/common/freelist.c tdb_unlock(tdb, -1, F_WRLCK); tdb 194 lib/tdb/common/freelist.c if (tdb_ofs_read(tdb, FREELIST_TOP, &rec->next) == -1 || tdb 195 lib/tdb/common/freelist.c tdb_rec_write(tdb, offset, rec) == -1 || tdb 196 lib/tdb/common/freelist.c tdb_ofs_write(tdb, FREELIST_TOP, &offset) == -1) { tdb 197 lib/tdb/common/freelist.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_free record write failed at offset=%d\n", offset)); tdb 202 lib/tdb/common/freelist.c tdb_unlock(tdb, -1, F_WRLCK); tdb 206 lib/tdb/common/freelist.c tdb_unlock(tdb, -1, F_WRLCK); tdb 220 lib/tdb/common/freelist.c static tdb_off_t tdb_allocate_ofs(struct tdb_context *tdb, tdb 230 lib/tdb/common/freelist.c if (tdb_ofs_write(tdb, last_ptr, &rec->next) == -1) { tdb 236 lib/tdb/common/freelist.c if (tdb_rec_write(tdb, rec_ptr, rec) == -1) { tdb 244 lib/tdb/common/freelist.c if (tdb_rec_write(tdb, rec_ptr, rec) == -1) { tdb 247 lib/tdb/common/freelist.c if (update_tailer(tdb, rec_ptr, rec) == -1) { tdb 258 lib/tdb/common/freelist.c if (tdb_rec_write(tdb, rec_ptr, rec) == -1) { tdb 262 lib/tdb/common/freelist.c if (update_tailer(tdb, rec_ptr, rec) == -1) { tdb 275 lib/tdb/common/freelist.c tdb_off_t tdb_allocate(struct tdb_context *tdb, tdb_len_t length, struct list_struct *rec) tdb 284 lib/tdb/common/freelist.c if (tdb_lock(tdb, -1, F_WRLCK) == -1) tdb 295 lib/tdb/common/freelist.c if (tdb_ofs_read(tdb, FREELIST_TOP, &rec_ptr) == -1) tdb 308 lib/tdb/common/freelist.c if (tdb_rec_free_read(tdb, rec_ptr, rec) == -1) { tdb 342 lib/tdb/common/freelist.c if (tdb_rec_free_read(tdb, bestfit.rec_ptr, rec) == -1) { tdb 346 lib/tdb/common/freelist.c newrec_ptr = tdb_allocate_ofs(tdb, length, bestfit.rec_ptr, tdb 348 lib/tdb/common/freelist.c tdb_unlock(tdb, -1, F_WRLCK); tdb 354 lib/tdb/common/freelist.c if (tdb_expand(tdb, length + sizeof(*rec)) == 0) tdb 357 lib/tdb/common/freelist.c tdb_unlock(tdb, -1, F_WRLCK); tdb 366 lib/tdb/common/freelist.c int tdb_freelist_size(struct tdb_context *tdb) tdb 371 lib/tdb/common/freelist.c if (tdb_lock(tdb, -1, F_RDLCK) == -1) { tdb 376 lib/tdb/common/freelist.c while (tdb_ofs_read(tdb, ptr, &ptr) == 0 && ptr != 0) { tdb 380 lib/tdb/common/freelist.c tdb_unlock(tdb, -1, F_RDLCK); tdb 46 lib/tdb/common/freelistcheck.c int tdb_validate_freelist(struct tdb_context *tdb, int *pnum_entries) tdb 55 lib/tdb/common/freelistcheck.c mem_tdb = tdb_open("flval", tdb->header.hash_size, tdb 61 lib/tdb/common/freelistcheck.c if (tdb_lock(tdb, -1, F_WRLCK) == -1) { tdb 75 lib/tdb/common/freelistcheck.c if (tdb_ofs_read(tdb, FREELIST_TOP, &rec_ptr) == -1) { tdb 90 lib/tdb/common/freelistcheck.c if (tdb_rec_free_read(tdb, rec_ptr, &rec) == -1) { tdb 105 lib/tdb/common/freelistcheck.c tdb_unlock(tdb, -1, F_WRLCK); tdb 36 lib/tdb/common/io.c static int tdb_oob(struct tdb_context *tdb, tdb_off_t len, int probe) tdb 39 lib/tdb/common/io.c if (len <= tdb->map_size) tdb 41 lib/tdb/common/io.c if (tdb->flags & TDB_INTERNAL) { tdb 44 lib/tdb/common/io.c tdb->ecode = TDB_ERR_IO; tdb 45 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_oob len %d beyond internal malloc size %d\n", tdb 46 lib/tdb/common/io.c (int)len, (int)tdb->map_size)); tdb 51 lib/tdb/common/io.c if (fstat(tdb->fd, &st) == -1) { tdb 58 lib/tdb/common/io.c tdb->ecode = TDB_ERR_IO; tdb 59 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_oob len %d beyond eof at %d\n", tdb 66 lib/tdb/common/io.c if (tdb_munmap(tdb) == -1) tdb 68 lib/tdb/common/io.c tdb->map_size = st.st_size; tdb 69 lib/tdb/common/io.c tdb_mmap(tdb); tdb 74 lib/tdb/common/io.c static int tdb_write(struct tdb_context *tdb, tdb_off_t off, tdb 81 lib/tdb/common/io.c if (tdb->read_only || tdb->traverse_read) { tdb 82 lib/tdb/common/io.c tdb->ecode = TDB_ERR_RDONLY; tdb 86 lib/tdb/common/io.c if (tdb->methods->tdb_oob(tdb, off + len, 0) != 0) tdb 89 lib/tdb/common/io.c if (tdb->map_ptr) { tdb 90 lib/tdb/common/io.c memcpy(off + (char *)tdb->map_ptr, buf, len); tdb 92 lib/tdb/common/io.c ssize_t written = pwrite(tdb->fd, buf, len, off); tdb 95 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_write: wrote only " tdb 99 lib/tdb/common/io.c written = pwrite(tdb->fd, (const void *)((const char *)buf+written), tdb 105 lib/tdb/common/io.c tdb->ecode = TDB_ERR_IO; tdb 106 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_write failed at %d " tdb 110 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_write: failed to " tdb 131 lib/tdb/common/io.c static int tdb_read(struct tdb_context *tdb, tdb_off_t off, void *buf, tdb 134 lib/tdb/common/io.c if (tdb->methods->tdb_oob(tdb, off + len, 0) != 0) { tdb 138 lib/tdb/common/io.c if (tdb->map_ptr) { tdb 139 lib/tdb/common/io.c memcpy(buf, off + (char *)tdb->map_ptr, len); tdb 141 lib/tdb/common/io.c ssize_t ret = pread(tdb->fd, buf, len, off); tdb 144 lib/tdb/common/io.c tdb->ecode = TDB_ERR_IO; tdb 145 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_read failed at %d " tdb 148 lib/tdb/common/io.c (int)tdb->map_size)); tdb 164 lib/tdb/common/io.c static void tdb_next_hash_chain(struct tdb_context *tdb, uint32_t *chain) tdb 167 lib/tdb/common/io.c if (tdb->map_ptr) { tdb 168 lib/tdb/common/io.c for (;h < tdb->header.hash_size;h++) { tdb 169 lib/tdb/common/io.c if (0 != *(uint32_t *)(TDB_HASH_TOP(h) + (unsigned char *)tdb->map_ptr)) { tdb 175 lib/tdb/common/io.c for (;h < tdb->header.hash_size;h++) { tdb 176 lib/tdb/common/io.c if (tdb_ofs_read(tdb, TDB_HASH_TOP(h), &off) != 0 || off != 0) { tdb 185 lib/tdb/common/io.c int tdb_munmap(struct tdb_context *tdb) tdb 187 lib/tdb/common/io.c if (tdb->flags & TDB_INTERNAL) tdb 191 lib/tdb/common/io.c if (tdb->map_ptr) { tdb 194 lib/tdb/common/io.c ret = munmap(tdb->map_ptr, tdb->map_size); tdb 199 lib/tdb/common/io.c tdb->map_ptr = NULL; tdb 203 lib/tdb/common/io.c void tdb_mmap(struct tdb_context *tdb) tdb 205 lib/tdb/common/io.c if (tdb->flags & TDB_INTERNAL) tdb 209 lib/tdb/common/io.c if (!(tdb->flags & TDB_NOMMAP)) { tdb 210 lib/tdb/common/io.c tdb->map_ptr = mmap(NULL, tdb->map_size, tdb 211 lib/tdb/common/io.c PROT_READ|(tdb->read_only? 0:PROT_WRITE), tdb 212 lib/tdb/common/io.c MAP_SHARED|MAP_FILE, tdb->fd, 0); tdb 218 lib/tdb/common/io.c if (tdb->map_ptr == MAP_FAILED) { tdb 219 lib/tdb/common/io.c tdb->map_ptr = NULL; tdb 220 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_WARNING, "tdb_mmap failed for size %d (%s)\n", tdb 221 lib/tdb/common/io.c tdb->map_size, strerror(errno))); tdb 224 lib/tdb/common/io.c tdb->map_ptr = NULL; tdb 227 lib/tdb/common/io.c tdb->map_ptr = NULL; tdb 233 lib/tdb/common/io.c static int tdb_expand_file(struct tdb_context *tdb, tdb_off_t size, tdb_off_t addition) tdb 237 lib/tdb/common/io.c if (tdb->read_only || tdb->traverse_read) { tdb 238 lib/tdb/common/io.c tdb->ecode = TDB_ERR_RDONLY; tdb 242 lib/tdb/common/io.c if (ftruncate(tdb->fd, size+addition) == -1) { tdb 244 lib/tdb/common/io.c ssize_t written = pwrite(tdb->fd, &b, 1, (size+addition) - 1); tdb 247 lib/tdb/common/io.c written = pwrite(tdb->fd, &b, 1, (size+addition) - 1); tdb 254 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "expand_file to %d failed (%s)\n", tdb 266 lib/tdb/common/io.c ssize_t written = pwrite(tdb->fd, buf, n, size); tdb 269 lib/tdb/common/io.c written = pwrite(tdb->fd, buf, n, size); tdb 273 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "expand_file write " tdb 278 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "expand_file write of " tdb 283 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_WARNING, "expand_file: wrote " tdb 296 lib/tdb/common/io.c int tdb_expand(struct tdb_context *tdb, tdb_off_t size) tdb 301 lib/tdb/common/io.c if (tdb_lock(tdb, -1, F_WRLCK) == -1) { tdb 302 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "lock failed in tdb_expand\n")); tdb 307 lib/tdb/common/io.c tdb->methods->tdb_oob(tdb, tdb->map_size + 1, 1); tdb 312 lib/tdb/common/io.c new_size = MAX(tdb->map_size + size*100, tdb->map_size * 1.25); tdb 313 lib/tdb/common/io.c size = TDB_ALIGN(new_size, tdb->page_size) - tdb->map_size; tdb 315 lib/tdb/common/io.c if (!(tdb->flags & TDB_INTERNAL)) tdb 316 lib/tdb/common/io.c tdb_munmap(tdb); tdb 325 lib/tdb/common/io.c if (!(tdb->flags & TDB_INTERNAL)) { tdb 326 lib/tdb/common/io.c if (tdb->methods->tdb_expand_file(tdb, tdb->map_size, size) != 0) tdb 330 lib/tdb/common/io.c tdb->map_size += size; tdb 332 lib/tdb/common/io.c if (tdb->flags & TDB_INTERNAL) { tdb 333 lib/tdb/common/io.c char *new_map_ptr = (char *)realloc(tdb->map_ptr, tdb 334 lib/tdb/common/io.c tdb->map_size); tdb 336 lib/tdb/common/io.c tdb->map_size -= size; tdb 339 lib/tdb/common/io.c tdb->map_ptr = new_map_ptr; tdb 348 lib/tdb/common/io.c tdb_mmap(tdb); tdb 356 lib/tdb/common/io.c offset = tdb->map_size - size; tdb 357 lib/tdb/common/io.c if (tdb_free(tdb, offset, &rec) == -1) tdb 360 lib/tdb/common/io.c tdb_unlock(tdb, -1, F_WRLCK); tdb 363 lib/tdb/common/io.c tdb_unlock(tdb, -1, F_WRLCK); tdb 368 lib/tdb/common/io.c int tdb_ofs_read(struct tdb_context *tdb, tdb_off_t offset, tdb_off_t *d) tdb 370 lib/tdb/common/io.c return tdb->methods->tdb_read(tdb, offset, (char*)d, sizeof(*d), DOCONV()); tdb 373 lib/tdb/common/io.c int tdb_ofs_write(struct tdb_context *tdb, tdb_off_t offset, tdb_off_t *d) tdb 376 lib/tdb/common/io.c return tdb->methods->tdb_write(tdb, offset, CONVERT(off), sizeof(*d)); tdb 381 lib/tdb/common/io.c unsigned char *tdb_alloc_read(struct tdb_context *tdb, tdb_off_t offset, tdb_len_t len) tdb 392 lib/tdb/common/io.c tdb->ecode = TDB_ERR_OOM; tdb 393 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_ERROR,"tdb_alloc_read malloc failed len=%d (%s)\n", tdb 397 lib/tdb/common/io.c if (tdb->methods->tdb_read(tdb, offset, buf, len, 0) == -1) { tdb 406 lib/tdb/common/io.c int tdb_parse_data(struct tdb_context *tdb, TDB_DATA key, tdb 417 lib/tdb/common/io.c if ((tdb->transaction == NULL) && (tdb->map_ptr != NULL)) { tdb 422 lib/tdb/common/io.c if (tdb->methods->tdb_oob(tdb, offset+len, 0) != 0) { tdb 425 lib/tdb/common/io.c data.dptr = offset + (unsigned char *)tdb->map_ptr; tdb 429 lib/tdb/common/io.c if (!(data.dptr = tdb_alloc_read(tdb, offset, len))) { tdb 439 lib/tdb/common/io.c int tdb_rec_read(struct tdb_context *tdb, tdb_off_t offset, struct list_struct *rec) tdb 441 lib/tdb/common/io.c if (tdb->methods->tdb_read(tdb, offset, rec, sizeof(*rec),DOCONV()) == -1) tdb 445 lib/tdb/common/io.c tdb->ecode = TDB_ERR_CORRUPT; tdb 446 lib/tdb/common/io.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_rec_read bad magic 0x%x at offset=%d\n", rec->magic, offset)); tdb 449 lib/tdb/common/io.c return tdb->methods->tdb_oob(tdb, rec->next+sizeof(*rec), 0); tdb 452 lib/tdb/common/io.c int tdb_rec_write(struct tdb_context *tdb, tdb_off_t offset, struct list_struct *rec) tdb 455 lib/tdb/common/io.c return tdb->methods->tdb_write(tdb, offset, CONVERT(r), sizeof(r)); tdb 470 lib/tdb/common/io.c void tdb_io_init(struct tdb_context *tdb) tdb 472 lib/tdb/common/io.c tdb->methods = &io_methods; tdb 32 lib/tdb/common/lock.c void tdb_setalarm_sigptr(struct tdb_context *tdb, volatile sig_atomic_t *ptr) tdb 34 lib/tdb/common/lock.c tdb->interrupt_sig_ptr = ptr; tdb 45 lib/tdb/common/lock.c int tdb_brlock(struct tdb_context *tdb, tdb_off_t offset, tdb 51 lib/tdb/common/lock.c if (tdb->flags & TDB_NOLOCK) { tdb 55 lib/tdb/common/lock.c if ((rw_type == F_WRLCK) && (tdb->read_only || tdb->traverse_read)) { tdb 56 lib/tdb/common/lock.c tdb->ecode = TDB_ERR_RDONLY; tdb 67 lib/tdb/common/lock.c ret = fcntl(tdb->fd,lck_type,&fl); tdb 71 lib/tdb/common/lock.c tdb->interrupt_sig_ptr && tdb 72 lib/tdb/common/lock.c *tdb->interrupt_sig_ptr) { tdb 83 lib/tdb/common/lock.c tdb->ecode = TDB_ERR_LOCK; tdb 84 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_TRACE,"tdb_brlock failed (fd=%d) at offset %d rw_type=%d lck_type=%d len=%d\n", tdb 85 lib/tdb/common/lock.c tdb->fd, offset, rw_type, lck_type, (int)len)); tdb 99 lib/tdb/common/lock.c int tdb_brlock_upgrade(struct tdb_context *tdb, tdb_off_t offset, size_t len) tdb 104 lib/tdb/common/lock.c if (tdb_brlock(tdb, offset, F_WRLCK, F_SETLKW, 1, len) == 0) { tdb 115 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_TRACE,"tdb_brlock_upgrade failed at offset %d\n", offset)); tdb 121 lib/tdb/common/lock.c static int _tdb_lock(struct tdb_context *tdb, int list, int ltype, int op) tdb 130 lib/tdb/common/lock.c if (tdb->global_lock.count && tdb 131 lib/tdb/common/lock.c (ltype == tdb->global_lock.ltype || ltype == F_RDLCK)) { tdb 135 lib/tdb/common/lock.c if (tdb->global_lock.count) { tdb 139 lib/tdb/common/lock.c if (list < -1 || list >= (int)tdb->header.hash_size) { tdb 140 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_ERROR,"tdb_lock: invalid list %d for ltype=%d\n", tdb 144 lib/tdb/common/lock.c if (tdb->flags & TDB_NOLOCK) tdb 147 lib/tdb/common/lock.c for (i=0; i<tdb->num_lockrecs; i++) { tdb 148 lib/tdb/common/lock.c if (tdb->lockrecs[i].list == list) { tdb 149 lib/tdb/common/lock.c if (tdb->lockrecs[i].count == 0) { tdb 154 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_lock: " tdb 161 lib/tdb/common/lock.c tdb->lockrecs[i].count++; tdb 167 lib/tdb/common/lock.c tdb->lockrecs, tdb 168 lib/tdb/common/lock.c sizeof(*tdb->lockrecs) * (tdb->num_lockrecs+1)); tdb 173 lib/tdb/common/lock.c tdb->lockrecs = new_lck; tdb 178 lib/tdb/common/lock.c tdb->methods->tdb_brlock(tdb,FREELIST_TOP+4*list, ltype, op, tdb 183 lib/tdb/common/lock.c tdb->num_locks++; tdb 185 lib/tdb/common/lock.c tdb->lockrecs[tdb->num_lockrecs].list = list; tdb 186 lib/tdb/common/lock.c tdb->lockrecs[tdb->num_lockrecs].count = 1; tdb 187 lib/tdb/common/lock.c tdb->lockrecs[tdb->num_lockrecs].ltype = ltype; tdb 188 lib/tdb/common/lock.c tdb->num_lockrecs += 1; tdb 194 lib/tdb/common/lock.c int tdb_lock(struct tdb_context *tdb, int list, int ltype) tdb 197 lib/tdb/common/lock.c ret = _tdb_lock(tdb, list, ltype, F_SETLKW); tdb 199 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_lock failed on list %d " tdb 206 lib/tdb/common/lock.c int tdb_lock_nonblock(struct tdb_context *tdb, int list, int ltype) tdb 208 lib/tdb/common/lock.c return _tdb_lock(tdb, list, ltype, F_SETLK); tdb 215 lib/tdb/common/lock.c int tdb_unlock(struct tdb_context *tdb, int list, int ltype) tdb 225 lib/tdb/common/lock.c if (tdb->global_lock.count && tdb 226 lib/tdb/common/lock.c (ltype == tdb->global_lock.ltype || ltype == F_RDLCK)) { tdb 230 lib/tdb/common/lock.c if (tdb->global_lock.count) { tdb 234 lib/tdb/common/lock.c if (tdb->flags & TDB_NOLOCK) tdb 238 lib/tdb/common/lock.c if (list < -1 || list >= (int)tdb->header.hash_size) { tdb 239 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_unlock: list %d invalid (%d)\n", list, tdb->header.hash_size)); tdb 243 lib/tdb/common/lock.c for (i=0; i<tdb->num_lockrecs; i++) { tdb 244 lib/tdb/common/lock.c if (tdb->lockrecs[i].list == list) { tdb 245 lib/tdb/common/lock.c lck = &tdb->lockrecs[i]; tdb 251 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_unlock: count is 0\n")); tdb 270 lib/tdb/common/lock.c ret = tdb->methods->tdb_brlock(tdb, FREELIST_TOP+4*list, F_UNLCK, tdb 273 lib/tdb/common/lock.c tdb->num_locks--; tdb 280 lib/tdb/common/lock.c if (tdb->num_lockrecs > 1) { tdb 281 lib/tdb/common/lock.c *lck = tdb->lockrecs[tdb->num_lockrecs-1]; tdb 283 lib/tdb/common/lock.c tdb->num_lockrecs -= 1; tdb 290 lib/tdb/common/lock.c if (tdb->num_lockrecs == 0) { tdb 291 lib/tdb/common/lock.c SAFE_FREE(tdb->lockrecs); tdb 295 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_unlock: An error occurred unlocking!\n")); tdb 302 lib/tdb/common/lock.c int tdb_transaction_lock(struct tdb_context *tdb, int ltype) tdb 304 lib/tdb/common/lock.c if (tdb->have_transaction_lock || tdb->global_lock.count) { tdb 307 lib/tdb/common/lock.c if (tdb->methods->tdb_brlock(tdb, TRANSACTION_LOCK, ltype, tdb 309 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_lock: failed to get transaction lock\n")); tdb 310 lib/tdb/common/lock.c tdb->ecode = TDB_ERR_LOCK; tdb 313 lib/tdb/common/lock.c tdb->have_transaction_lock = 1; tdb 320 lib/tdb/common/lock.c int tdb_transaction_unlock(struct tdb_context *tdb) tdb 323 lib/tdb/common/lock.c if (!tdb->have_transaction_lock) { tdb 326 lib/tdb/common/lock.c ret = tdb->methods->tdb_brlock(tdb, TRANSACTION_LOCK, F_UNLCK, F_SETLKW, 0, 1); tdb 328 lib/tdb/common/lock.c tdb->have_transaction_lock = 0; tdb 337 lib/tdb/common/lock.c static int _tdb_lockall(struct tdb_context *tdb, int ltype, int op) tdb 344 lib/tdb/common/lock.c if (tdb->read_only || tdb->traverse_read) tdb 347 lib/tdb/common/lock.c if (tdb->global_lock.count && tdb->global_lock.ltype == ltype) { tdb 348 lib/tdb/common/lock.c tdb->global_lock.count++; tdb 352 lib/tdb/common/lock.c if (tdb->global_lock.count) { tdb 357 lib/tdb/common/lock.c if (tdb->num_locks != 0) { tdb 363 lib/tdb/common/lock.c tdb->methods->tdb_brlock(tdb, FREELIST_TOP, ltype, op, tdb 364 lib/tdb/common/lock.c 0, 4*tdb->header.hash_size)) { tdb 366 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_lockall failed (%s)\n", strerror(errno))); tdb 371 lib/tdb/common/lock.c tdb->global_lock.count = 1; tdb 372 lib/tdb/common/lock.c tdb->global_lock.ltype = ltype; tdb 380 lib/tdb/common/lock.c static int _tdb_unlockall(struct tdb_context *tdb, int ltype) tdb 387 lib/tdb/common/lock.c if (tdb->read_only || tdb->traverse_read) { tdb 391 lib/tdb/common/lock.c if (tdb->global_lock.ltype != ltype || tdb->global_lock.count == 0) { tdb 395 lib/tdb/common/lock.c if (tdb->global_lock.count > 1) { tdb 396 lib/tdb/common/lock.c tdb->global_lock.count--; tdb 401 lib/tdb/common/lock.c tdb->methods->tdb_brlock(tdb, FREELIST_TOP, F_UNLCK, F_SETLKW, tdb 402 lib/tdb/common/lock.c 0, 4*tdb->header.hash_size)) { tdb 403 lib/tdb/common/lock.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_unlockall failed (%s)\n", strerror(errno))); tdb 407 lib/tdb/common/lock.c tdb->global_lock.count = 0; tdb 408 lib/tdb/common/lock.c tdb->global_lock.ltype = 0; tdb 414 lib/tdb/common/lock.c int tdb_lockall(struct tdb_context *tdb) tdb 416 lib/tdb/common/lock.c return _tdb_lockall(tdb, F_WRLCK, F_SETLKW); tdb 420 lib/tdb/common/lock.c int tdb_lockall_mark(struct tdb_context *tdb) tdb 422 lib/tdb/common/lock.c return _tdb_lockall(tdb, F_WRLCK | TDB_MARK_LOCK, F_SETLKW); tdb 426 lib/tdb/common/lock.c int tdb_lockall_unmark(struct tdb_context *tdb) tdb 428 lib/tdb/common/lock.c return _tdb_unlockall(tdb, F_WRLCK | TDB_MARK_LOCK); tdb 432 lib/tdb/common/lock.c int tdb_lockall_nonblock(struct tdb_context *tdb) tdb 434 lib/tdb/common/lock.c return _tdb_lockall(tdb, F_WRLCK, F_SETLK); tdb 438 lib/tdb/common/lock.c int tdb_unlockall(struct tdb_context *tdb) tdb 440 lib/tdb/common/lock.c return _tdb_unlockall(tdb, F_WRLCK); tdb 444 lib/tdb/common/lock.c int tdb_lockall_read(struct tdb_context *tdb) tdb 446 lib/tdb/common/lock.c return _tdb_lockall(tdb, F_RDLCK, F_SETLKW); tdb 450 lib/tdb/common/lock.c int tdb_lockall_read_nonblock(struct tdb_context *tdb) tdb 452 lib/tdb/common/lock.c return _tdb_lockall(tdb, F_RDLCK, F_SETLK); tdb 456 lib/tdb/common/lock.c int tdb_unlockall_read(struct tdb_context *tdb) tdb 458 lib/tdb/common/lock.c return _tdb_unlockall(tdb, F_RDLCK); tdb 463 lib/tdb/common/lock.c int tdb_chainlock(struct tdb_context *tdb, TDB_DATA key) tdb 465 lib/tdb/common/lock.c return tdb_lock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK); tdb 471 lib/tdb/common/lock.c int tdb_chainlock_nonblock(struct tdb_context *tdb, TDB_DATA key) tdb 473 lib/tdb/common/lock.c return tdb_lock_nonblock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK); tdb 477 lib/tdb/common/lock.c int tdb_chainlock_mark(struct tdb_context *tdb, TDB_DATA key) tdb 479 lib/tdb/common/lock.c return tdb_lock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK | TDB_MARK_LOCK); tdb 483 lib/tdb/common/lock.c int tdb_chainlock_unmark(struct tdb_context *tdb, TDB_DATA key) tdb 485 lib/tdb/common/lock.c return tdb_unlock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK | TDB_MARK_LOCK); tdb 488 lib/tdb/common/lock.c int tdb_chainunlock(struct tdb_context *tdb, TDB_DATA key) tdb 490 lib/tdb/common/lock.c return tdb_unlock(tdb, BUCKET(tdb->hash_fn(&key)), F_WRLCK); tdb 493 lib/tdb/common/lock.c int tdb_chainlock_read(struct tdb_context *tdb, TDB_DATA key) tdb 495 lib/tdb/common/lock.c return tdb_lock(tdb, BUCKET(tdb->hash_fn(&key)), F_RDLCK); tdb 498 lib/tdb/common/lock.c int tdb_chainunlock_read(struct tdb_context *tdb, TDB_DATA key) tdb 500 lib/tdb/common/lock.c return tdb_unlock(tdb, BUCKET(tdb->hash_fn(&key)), F_RDLCK); tdb 506 lib/tdb/common/lock.c int tdb_lock_record(struct tdb_context *tdb, tdb_off_t off) tdb 508 lib/tdb/common/lock.c if (tdb->global_lock.count) { tdb 511 lib/tdb/common/lock.c return off ? tdb->methods->tdb_brlock(tdb, off, F_RDLCK, F_SETLKW, 0, 1) : 0; tdb 519 lib/tdb/common/lock.c int tdb_write_lock_record(struct tdb_context *tdb, tdb_off_t off) tdb 522 lib/tdb/common/lock.c for (i = &tdb->travlocks; i; i = i->next) tdb 525 lib/tdb/common/lock.c return tdb->methods->tdb_brlock(tdb, off, F_WRLCK, F_SETLK, 1, 1); tdb 532 lib/tdb/common/lock.c int tdb_write_unlock_record(struct tdb_context *tdb, tdb_off_t off) tdb 534 lib/tdb/common/lock.c return tdb->methods->tdb_brlock(tdb, off, F_UNLCK, F_SETLK, 0, 1); tdb 538 lib/tdb/common/lock.c int tdb_unlock_record(struct tdb_context *tdb, tdb_off_t off) tdb 543 lib/tdb/common/lock.c if (tdb->global_lock.count) { tdb 549 lib/tdb/common/lock.c for (i = &tdb->travlocks; i; i = i->next) tdb 552 lib/tdb/common/lock.c return (count == 1 ? tdb->methods->tdb_brlock(tdb, off, F_UNLCK, F_SETLKW, 0, 1) : 0); tdb 49 lib/tdb/common/open.c static int tdb_new_database(struct tdb_context *tdb, int hash_size) tdb 64 lib/tdb/common/open.c if (tdb->flags & TDB_INTERNAL) { tdb 65 lib/tdb/common/open.c tdb->map_size = size; tdb 66 lib/tdb/common/open.c tdb->map_ptr = (char *)newdb; tdb 67 lib/tdb/common/open.c memcpy(&tdb->header, newdb, sizeof(tdb->header)); tdb 72 lib/tdb/common/open.c if (lseek(tdb->fd, 0, SEEK_SET) == -1) tdb 75 lib/tdb/common/open.c if (ftruncate(tdb->fd, 0) == -1) tdb 80 lib/tdb/common/open.c memcpy(&tdb->header, newdb, sizeof(tdb->header)); tdb 84 lib/tdb/common/open.c written = write(tdb->fd, newdb, size); tdb 91 lib/tdb/common/open.c written = write(tdb->fd, newdb+written, size); tdb 139 lib/tdb/common/open.c static void null_log_fn(struct tdb_context *tdb, enum tdb_debug_level level, const char *fmt, ...) PRINTF_ATTRIBUTE(3, 4); tdb 140 lib/tdb/common/open.c static void null_log_fn(struct tdb_context *tdb, enum tdb_debug_level level, const char *fmt, ...) tdb 150 lib/tdb/common/open.c struct tdb_context *tdb; tdb 157 lib/tdb/common/open.c if (!(tdb = (struct tdb_context *)calloc(1, sizeof *tdb))) { tdb 162 lib/tdb/common/open.c tdb_io_init(tdb); tdb 163 lib/tdb/common/open.c tdb->fd = -1; tdb 164 lib/tdb/common/open.c tdb->name = NULL; tdb 165 lib/tdb/common/open.c tdb->map_ptr = NULL; tdb 166 lib/tdb/common/open.c tdb->flags = tdb_flags; tdb 167 lib/tdb/common/open.c tdb->open_flags = open_flags; tdb 169 lib/tdb/common/open.c tdb->log = *log_ctx; tdb 171 lib/tdb/common/open.c tdb->log.log_fn = null_log_fn; tdb 172 lib/tdb/common/open.c tdb->log.log_private = NULL; tdb 174 lib/tdb/common/open.c tdb->hash_fn = hash_fn ? hash_fn : default_tdb_hash; tdb 177 lib/tdb/common/open.c tdb->page_size = getpagesize(); tdb 178 lib/tdb/common/open.c if (tdb->page_size <= 0) { tdb 179 lib/tdb/common/open.c tdb->page_size = 0x2000; tdb 182 lib/tdb/common/open.c tdb->max_dead_records = (tdb_flags & TDB_VOLATILE) ? 5 : 0; tdb 185 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: can't open tdb %s write-only\n", tdb 194 lib/tdb/common/open.c tdb->read_only = 1; tdb 196 lib/tdb/common/open.c tdb->flags |= TDB_NOLOCK; tdb 197 lib/tdb/common/open.c tdb->flags &= ~TDB_CLEAR_IF_FIRST; tdb 201 lib/tdb/common/open.c if (tdb->flags & TDB_INTERNAL) { tdb 202 lib/tdb/common/open.c tdb->flags |= (TDB_NOLOCK | TDB_NOMMAP); tdb 203 lib/tdb/common/open.c tdb->flags &= ~TDB_CLEAR_IF_FIRST; tdb 204 lib/tdb/common/open.c if (tdb_new_database(tdb, hash_size) != 0) { tdb 205 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: tdb_new_database failed!")); tdb 211 lib/tdb/common/open.c if ((tdb->fd = open(name, open_flags, mode)) == -1) { tdb 212 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_WARNING, "tdb_open_ex: could not open file %s: %s\n", tdb 218 lib/tdb/common/open.c v = fcntl(tdb->fd, F_GETFD, 0); tdb 219 lib/tdb/common/open.c fcntl(tdb->fd, F_SETFD, v | FD_CLOEXEC); tdb 222 lib/tdb/common/open.c if (tdb->methods->tdb_brlock(tdb, GLOBAL_LOCK, F_WRLCK, F_SETLKW, 0, 1) == -1) { tdb 223 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: failed to get global lock on %s: %s\n", tdb 230 lib/tdb/common/open.c (!tdb->read_only) && tdb 231 lib/tdb/common/open.c (locked = (tdb->methods->tdb_brlock(tdb, ACTIVE_LOCK, F_WRLCK, F_SETLK, 0, 1) == 0))) { tdb 233 lib/tdb/common/open.c if (ftruncate(tdb->fd, 0) == -1) { tdb 234 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_open_ex: " tdb 242 lib/tdb/common/open.c if (read(tdb->fd, &tdb->header, sizeof(tdb->header)) != sizeof(tdb->header) tdb 243 lib/tdb/common/open.c || strcmp(tdb->header.magic_food, TDB_MAGIC_FOOD) != 0 tdb 244 lib/tdb/common/open.c || (tdb->header.version != TDB_VERSION tdb 245 lib/tdb/common/open.c && !(rev = (tdb->header.version==TDB_BYTEREV(TDB_VERSION))))) { tdb 247 lib/tdb/common/open.c if (!(open_flags & O_CREAT) || tdb_new_database(tdb, hash_size) == -1) { tdb 253 lib/tdb/common/open.c rev = (tdb->flags & TDB_CONVERT); tdb 255 lib/tdb/common/open.c vp = (unsigned char *)&tdb->header.version; tdb 258 lib/tdb/common/open.c tdb->flags |= (vertest==TDB_VERSION) ? TDB_BIGENDIAN : 0; tdb 260 lib/tdb/common/open.c tdb->flags &= ~TDB_CONVERT; tdb 262 lib/tdb/common/open.c tdb->flags |= TDB_CONVERT; tdb 263 lib/tdb/common/open.c tdb_convert(&tdb->header, sizeof(tdb->header)); tdb 265 lib/tdb/common/open.c if (fstat(tdb->fd, &st) == -1) tdb 268 lib/tdb/common/open.c if (tdb->header.rwlocks != 0) { tdb 269 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: spinlocks no longer supported\n")); tdb 275 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: " tdb 282 lib/tdb/common/open.c if (!(tdb->name = (char *)strdup(name))) { tdb 287 lib/tdb/common/open.c tdb->map_size = st.st_size; tdb 288 lib/tdb/common/open.c tdb->device = st.st_dev; tdb 289 lib/tdb/common/open.c tdb->inode = st.st_ino; tdb 290 lib/tdb/common/open.c tdb_mmap(tdb); tdb 292 lib/tdb/common/open.c if (tdb->methods->tdb_brlock(tdb, ACTIVE_LOCK, F_UNLCK, F_SETLK, 0, 1) == -1) { tdb 293 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: " tdb 307 lib/tdb/common/open.c if (tdb->methods->tdb_brlock(tdb, ACTIVE_LOCK, F_RDLCK, F_SETLKW, 0, 1) == -1) tdb 312 lib/tdb/common/open.c if (tdb_transaction_recover(tdb) == -1) { tdb 320 lib/tdb/common/open.c if (tdb->methods->tdb_brlock(tdb, GLOBAL_LOCK, F_UNLCK, F_SETLKW, 0, 1) == -1) tdb 322 lib/tdb/common/open.c tdb->next = tdbs; tdb 323 lib/tdb/common/open.c tdbs = tdb; tdb 324 lib/tdb/common/open.c return tdb; tdb 329 lib/tdb/common/open.c if (!tdb) tdb 332 lib/tdb/common/open.c if (tdb->map_ptr) { tdb 333 lib/tdb/common/open.c if (tdb->flags & TDB_INTERNAL) tdb 334 lib/tdb/common/open.c SAFE_FREE(tdb->map_ptr); tdb 336 lib/tdb/common/open.c tdb_munmap(tdb); tdb 338 lib/tdb/common/open.c SAFE_FREE(tdb->name); tdb 339 lib/tdb/common/open.c if (tdb->fd != -1) tdb 340 lib/tdb/common/open.c if (close(tdb->fd) != 0) tdb 341 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: failed to close tdb->fd on error!\n")); tdb 342 lib/tdb/common/open.c SAFE_FREE(tdb); tdb 352 lib/tdb/common/open.c void tdb_set_max_dead(struct tdb_context *tdb, int max_dead) tdb 354 lib/tdb/common/open.c tdb->max_dead_records = max_dead; tdb 362 lib/tdb/common/open.c int tdb_close(struct tdb_context *tdb) tdb 367 lib/tdb/common/open.c if (tdb->transaction) { tdb 368 lib/tdb/common/open.c tdb_transaction_cancel(tdb); tdb 371 lib/tdb/common/open.c if (tdb->map_ptr) { tdb 372 lib/tdb/common/open.c if (tdb->flags & TDB_INTERNAL) tdb 373 lib/tdb/common/open.c SAFE_FREE(tdb->map_ptr); tdb 375 lib/tdb/common/open.c tdb_munmap(tdb); tdb 377 lib/tdb/common/open.c SAFE_FREE(tdb->name); tdb 378 lib/tdb/common/open.c if (tdb->fd != -1) tdb 379 lib/tdb/common/open.c ret = close(tdb->fd); tdb 380 lib/tdb/common/open.c SAFE_FREE(tdb->lockrecs); tdb 384 lib/tdb/common/open.c if (*i == tdb) { tdb 385 lib/tdb/common/open.c *i = tdb->next; tdb 390 lib/tdb/common/open.c memset(tdb, 0, sizeof(*tdb)); tdb 391 lib/tdb/common/open.c SAFE_FREE(tdb); tdb 397 lib/tdb/common/open.c void tdb_set_logging_function(struct tdb_context *tdb, tdb 400 lib/tdb/common/open.c tdb->log = *log_ctx; tdb 403 lib/tdb/common/open.c void *tdb_get_logging_private(struct tdb_context *tdb) tdb 405 lib/tdb/common/open.c return tdb->log.log_private; tdb 410 lib/tdb/common/open.c int tdb_reopen(struct tdb_context *tdb) tdb 414 lib/tdb/common/open.c if (tdb->flags & TDB_INTERNAL) { tdb 418 lib/tdb/common/open.c if (tdb->num_locks != 0 || tdb->global_lock.count) { tdb 419 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_reopen: reopen not allowed with locks held\n")); tdb 423 lib/tdb/common/open.c if (tdb->transaction != 0) { tdb 424 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_reopen: reopen not allowed inside a transaction\n")); tdb 431 lib/tdb/common/open.c if (tdb_munmap(tdb) != 0) { tdb 432 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_reopen: munmap failed (%s)\n", strerror(errno))); tdb 435 lib/tdb/common/open.c if (close(tdb->fd) != 0) tdb 436 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_reopen: WARNING closing tdb->fd failed!\n")); tdb 437 lib/tdb/common/open.c tdb->fd = open(tdb->name, tdb->open_flags & ~(O_CREAT|O_TRUNC), 0); tdb 438 lib/tdb/common/open.c if (tdb->fd == -1) { tdb 439 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_reopen: open failed (%s)\n", strerror(errno))); tdb 442 lib/tdb/common/open.c if (fstat(tdb->fd, &st) != 0) { tdb 443 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_reopen: fstat failed (%s)\n", strerror(errno))); tdb 446 lib/tdb/common/open.c if (st.st_ino != tdb->inode || st.st_dev != tdb->device) { tdb 447 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_reopen: file dev/inode has changed!\n")); tdb 450 lib/tdb/common/open.c tdb_mmap(tdb); tdb 453 lib/tdb/common/open.c if ((tdb->flags & TDB_CLEAR_IF_FIRST) && tdb 454 lib/tdb/common/open.c (tdb->methods->tdb_brlock(tdb, ACTIVE_LOCK, F_RDLCK, F_SETLKW, 0, 1) == -1)) { tdb 455 lib/tdb/common/open.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_reopen: failed to obtain active lock\n")); tdb 462 lib/tdb/common/open.c tdb_close(tdb); tdb 469 lib/tdb/common/open.c struct tdb_context *tdb; tdb 471 lib/tdb/common/open.c for (tdb=tdbs; tdb; tdb = tdb->next) { tdb 485 lib/tdb/common/open.c tdb->flags &= ~TDB_CLEAR_IF_FIRST; tdb 488 lib/tdb/common/open.c if (tdb_reopen(tdb) != 0) tdb 36 lib/tdb/common/tdb.c void tdb_increment_seqnum_nonblock(struct tdb_context *tdb) tdb 40 lib/tdb/common/tdb.c if (!(tdb->flags & TDB_SEQNUM)) { tdb 47 lib/tdb/common/tdb.c tdb_ofs_read(tdb, TDB_SEQNUM_OFS, &seqnum); tdb 49 lib/tdb/common/tdb.c tdb_ofs_write(tdb, TDB_SEQNUM_OFS, &seqnum); tdb 56 lib/tdb/common/tdb.c static void tdb_increment_seqnum(struct tdb_context *tdb) tdb 58 lib/tdb/common/tdb.c if (!(tdb->flags & TDB_SEQNUM)) { tdb 62 lib/tdb/common/tdb.c if (tdb_brlock(tdb, TDB_SEQNUM_OFS, F_WRLCK, F_SETLKW, 1, 1) != 0) { tdb 66 lib/tdb/common/tdb.c tdb_increment_seqnum_nonblock(tdb); tdb 68 lib/tdb/common/tdb.c tdb_brlock(tdb, TDB_SEQNUM_OFS, F_UNLCK, F_SETLKW, 1, 1); tdb 78 lib/tdb/common/tdb.c static tdb_off_t tdb_find(struct tdb_context *tdb, TDB_DATA key, uint32_t hash, tdb 84 lib/tdb/common/tdb.c if (tdb_ofs_read(tdb, TDB_HASH_TOP(hash), &rec_ptr) == -1) tdb 89 lib/tdb/common/tdb.c if (tdb_rec_read(tdb, rec_ptr, r) == -1) tdb 94 lib/tdb/common/tdb.c && tdb_parse_data(tdb, key, rec_ptr + sizeof(*r), tdb 101 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_find: loop detected.\n")); tdb 110 lib/tdb/common/tdb.c tdb_off_t tdb_find_lock_hash(struct tdb_context *tdb, TDB_DATA key, uint32_t hash, int locktype, tdb 115 lib/tdb/common/tdb.c if (tdb_lock(tdb, BUCKET(hash), locktype) == -1) tdb 117 lib/tdb/common/tdb.c if (!(rec_ptr = tdb_find(tdb, key, hash, rec))) tdb 118 lib/tdb/common/tdb.c tdb_unlock(tdb, BUCKET(hash), locktype); tdb 127 lib/tdb/common/tdb.c static int tdb_update_hash(struct tdb_context *tdb, TDB_DATA key, uint32_t hash, TDB_DATA dbuf) tdb 133 lib/tdb/common/tdb.c if (!(rec_ptr = tdb_find(tdb, key, hash, &rec))) tdb 138 lib/tdb/common/tdb.c tdb->ecode = TDB_SUCCESS; /* Not really an error */ tdb 142 lib/tdb/common/tdb.c if (tdb->methods->tdb_write(tdb, rec_ptr + sizeof(rec) + rec.key_len, tdb 149 lib/tdb/common/tdb.c return tdb_rec_write(tdb, rec_ptr, &rec); tdb 161 lib/tdb/common/tdb.c TDB_DATA tdb_fetch(struct tdb_context *tdb, TDB_DATA key) tdb 169 lib/tdb/common/tdb.c hash = tdb->hash_fn(&key); tdb 170 lib/tdb/common/tdb.c if (!(rec_ptr = tdb_find_lock_hash(tdb,key,hash,F_RDLCK,&rec))) tdb 173 lib/tdb/common/tdb.c ret.dptr = tdb_alloc_read(tdb, rec_ptr + sizeof(rec) + rec.key_len, tdb 176 lib/tdb/common/tdb.c tdb_unlock(tdb, BUCKET(rec.full_hash), F_RDLCK); tdb 196 lib/tdb/common/tdb.c int tdb_parse_record(struct tdb_context *tdb, TDB_DATA key, tdb 207 lib/tdb/common/tdb.c hash = tdb->hash_fn(&key); tdb 209 lib/tdb/common/tdb.c if (!(rec_ptr = tdb_find_lock_hash(tdb,key,hash,F_RDLCK,&rec))) { tdb 213 lib/tdb/common/tdb.c ret = tdb_parse_data(tdb, key, rec_ptr + sizeof(rec) + rec.key_len, tdb 216 lib/tdb/common/tdb.c tdb_unlock(tdb, BUCKET(rec.full_hash), F_RDLCK); tdb 227 lib/tdb/common/tdb.c static int tdb_exists_hash(struct tdb_context *tdb, TDB_DATA key, uint32_t hash) tdb 231 lib/tdb/common/tdb.c if (tdb_find_lock_hash(tdb, key, hash, F_RDLCK, &rec) == 0) tdb 233 lib/tdb/common/tdb.c tdb_unlock(tdb, BUCKET(rec.full_hash), F_RDLCK); tdb 237 lib/tdb/common/tdb.c int tdb_exists(struct tdb_context *tdb, TDB_DATA key) tdb 239 lib/tdb/common/tdb.c uint32_t hash = tdb->hash_fn(&key); tdb 240 lib/tdb/common/tdb.c return tdb_exists_hash(tdb, key, hash); tdb 244 lib/tdb/common/tdb.c int tdb_do_delete(struct tdb_context *tdb, tdb_off_t rec_ptr, struct list_struct *rec) tdb 249 lib/tdb/common/tdb.c if (tdb->read_only || tdb->traverse_read) return -1; tdb 251 lib/tdb/common/tdb.c if (((tdb->traverse_write != 0) && (!TDB_DEAD(rec))) || tdb 252 lib/tdb/common/tdb.c tdb_write_lock_record(tdb, rec_ptr) == -1) { tdb 255 lib/tdb/common/tdb.c return tdb_rec_write(tdb, rec_ptr, rec); tdb 257 lib/tdb/common/tdb.c if (tdb_write_unlock_record(tdb, rec_ptr) != 0) tdb 261 lib/tdb/common/tdb.c if (tdb_ofs_read(tdb, TDB_HASH_TOP(rec->full_hash), &i) == -1) tdb 264 lib/tdb/common/tdb.c if (tdb_rec_read(tdb, i, &lastrec) == -1) tdb 270 lib/tdb/common/tdb.c if (tdb_ofs_write(tdb, last_ptr, &rec->next) == -1) tdb 274 lib/tdb/common/tdb.c if (tdb_free(tdb, rec_ptr, rec) == -1) tdb 279 lib/tdb/common/tdb.c static int tdb_count_dead(struct tdb_context *tdb, uint32_t hash) tdb 286 lib/tdb/common/tdb.c if (tdb_ofs_read(tdb, TDB_HASH_TOP(hash), &rec_ptr) == -1) tdb 290 lib/tdb/common/tdb.c if (tdb_rec_read(tdb, rec_ptr, &rec) == -1) tdb 304 lib/tdb/common/tdb.c static int tdb_purge_dead(struct tdb_context *tdb, uint32_t hash) tdb 310 lib/tdb/common/tdb.c if (tdb_lock(tdb, -1, F_WRLCK) == -1) { tdb 315 lib/tdb/common/tdb.c if (tdb_ofs_read(tdb, TDB_HASH_TOP(hash), &rec_ptr) == -1) tdb 321 lib/tdb/common/tdb.c if (tdb_rec_read(tdb, rec_ptr, &rec) == -1) { tdb 328 lib/tdb/common/tdb.c && tdb_do_delete(tdb, rec_ptr, &rec) == -1) { tdb 335 lib/tdb/common/tdb.c tdb_unlock(tdb, -1, F_WRLCK); tdb 340 lib/tdb/common/tdb.c static int tdb_delete_hash(struct tdb_context *tdb, TDB_DATA key, uint32_t hash) tdb 346 lib/tdb/common/tdb.c if (tdb->max_dead_records != 0) { tdb 353 lib/tdb/common/tdb.c if (tdb_lock(tdb, BUCKET(hash), F_WRLCK) == -1) tdb 356 lib/tdb/common/tdb.c if (tdb_count_dead(tdb, hash) >= tdb->max_dead_records) { tdb 361 lib/tdb/common/tdb.c tdb_purge_dead(tdb, hash); tdb 364 lib/tdb/common/tdb.c if (!(rec_ptr = tdb_find(tdb, key, hash, &rec))) { tdb 365 lib/tdb/common/tdb.c tdb_unlock(tdb, BUCKET(hash), F_WRLCK); tdb 373 lib/tdb/common/tdb.c ret = tdb_rec_write(tdb, rec_ptr, &rec); tdb 376 lib/tdb/common/tdb.c if (!(rec_ptr = tdb_find_lock_hash(tdb, key, hash, F_WRLCK, tdb 380 lib/tdb/common/tdb.c ret = tdb_do_delete(tdb, rec_ptr, &rec); tdb 384 lib/tdb/common/tdb.c tdb_increment_seqnum(tdb); tdb 387 lib/tdb/common/tdb.c if (tdb_unlock(tdb, BUCKET(rec.full_hash), F_WRLCK) != 0) tdb 388 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_WARNING, "tdb_delete: WARNING tdb_unlock failed!\n")); tdb 392 lib/tdb/common/tdb.c int tdb_delete(struct tdb_context *tdb, TDB_DATA key) tdb 394 lib/tdb/common/tdb.c uint32_t hash = tdb->hash_fn(&key); tdb 395 lib/tdb/common/tdb.c return tdb_delete_hash(tdb, key, hash); tdb 401 lib/tdb/common/tdb.c static tdb_off_t tdb_find_dead(struct tdb_context *tdb, uint32_t hash, tdb 407 lib/tdb/common/tdb.c if (tdb_ofs_read(tdb, TDB_HASH_TOP(hash), &rec_ptr) == -1) tdb 412 lib/tdb/common/tdb.c if (tdb_rec_read(tdb, rec_ptr, r) == -1) tdb 432 lib/tdb/common/tdb.c int tdb_store(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf, int flag) tdb 440 lib/tdb/common/tdb.c if (tdb->read_only || tdb->traverse_read) { tdb 441 lib/tdb/common/tdb.c tdb->ecode = TDB_ERR_RDONLY; tdb 446 lib/tdb/common/tdb.c hash = tdb->hash_fn(&key); tdb 447 lib/tdb/common/tdb.c if (tdb_lock(tdb, BUCKET(hash), F_WRLCK) == -1) tdb 452 lib/tdb/common/tdb.c if (tdb_exists_hash(tdb, key, hash)) { tdb 453 lib/tdb/common/tdb.c tdb->ecode = TDB_ERR_EXISTS; tdb 458 lib/tdb/common/tdb.c if (tdb_update_hash(tdb, key, hash, dbuf) == 0) { tdb 461 lib/tdb/common/tdb.c if (tdb->ecode == TDB_ERR_NOEXIST && tdb 469 lib/tdb/common/tdb.c tdb->ecode = TDB_SUCCESS; tdb 475 lib/tdb/common/tdb.c tdb_delete_hash(tdb, key, hash); tdb 481 lib/tdb/common/tdb.c tdb->ecode = TDB_ERR_OOM; tdb 489 lib/tdb/common/tdb.c if (tdb->max_dead_records != 0) { tdb 497 lib/tdb/common/tdb.c tdb, hash, &rec, tdb 505 lib/tdb/common/tdb.c if (tdb_rec_write(tdb, rec_ptr, &rec) == -1 tdb 506 lib/tdb/common/tdb.c || tdb->methods->tdb_write( tdb 507 lib/tdb/common/tdb.c tdb, rec_ptr + sizeof(rec), tdb 521 lib/tdb/common/tdb.c if (tdb_lock(tdb, -1, F_WRLCK) == -1) { tdb 525 lib/tdb/common/tdb.c if ((tdb->max_dead_records != 0) tdb 526 lib/tdb/common/tdb.c && (tdb_purge_dead(tdb, hash) == -1)) { tdb 527 lib/tdb/common/tdb.c tdb_unlock(tdb, -1, F_WRLCK); tdb 532 lib/tdb/common/tdb.c rec_ptr = tdb_allocate(tdb, key.dsize + dbuf.dsize, &rec); tdb 534 lib/tdb/common/tdb.c tdb_unlock(tdb, -1, F_WRLCK); tdb 541 lib/tdb/common/tdb.c if (tdb_ofs_read(tdb, TDB_HASH_TOP(hash), &rec.next) == -1) tdb 550 lib/tdb/common/tdb.c if (tdb_rec_write(tdb, rec_ptr, &rec) == -1 tdb 551 lib/tdb/common/tdb.c || tdb->methods->tdb_write(tdb, rec_ptr+sizeof(rec), p, key.dsize+dbuf.dsize)==-1 tdb 552 lib/tdb/common/tdb.c || tdb_ofs_write(tdb, TDB_HASH_TOP(hash), &rec_ptr) == -1) { tdb 561 lib/tdb/common/tdb.c tdb_increment_seqnum(tdb); tdb 565 lib/tdb/common/tdb.c tdb_unlock(tdb, BUCKET(hash), F_WRLCK); tdb 571 lib/tdb/common/tdb.c int tdb_append(struct tdb_context *tdb, TDB_DATA key, TDB_DATA new_dbuf) tdb 578 lib/tdb/common/tdb.c hash = tdb->hash_fn(&key); tdb 579 lib/tdb/common/tdb.c if (tdb_lock(tdb, BUCKET(hash), F_WRLCK) == -1) tdb 582 lib/tdb/common/tdb.c dbuf = tdb_fetch(tdb, key); tdb 596 lib/tdb/common/tdb.c tdb->ecode = TDB_ERR_OOM; tdb 603 lib/tdb/common/tdb.c ret = tdb_store(tdb, key, dbuf, 0); tdb 606 lib/tdb/common/tdb.c tdb_unlock(tdb, BUCKET(hash), F_WRLCK); tdb 616 lib/tdb/common/tdb.c const char *tdb_name(struct tdb_context *tdb) tdb 618 lib/tdb/common/tdb.c return tdb->name; tdb 626 lib/tdb/common/tdb.c int tdb_fd(struct tdb_context *tdb) tdb 628 lib/tdb/common/tdb.c return tdb->fd; tdb 635 lib/tdb/common/tdb.c tdb_log_func tdb_log_fn(struct tdb_context *tdb) tdb 637 lib/tdb/common/tdb.c return tdb->log.log_fn; tdb 651 lib/tdb/common/tdb.c int tdb_get_seqnum(struct tdb_context *tdb) tdb 655 lib/tdb/common/tdb.c tdb_ofs_read(tdb, TDB_SEQNUM_OFS, &seqnum); tdb 659 lib/tdb/common/tdb.c int tdb_hash_size(struct tdb_context *tdb) tdb 661 lib/tdb/common/tdb.c return tdb->header.hash_size; tdb 664 lib/tdb/common/tdb.c size_t tdb_map_size(struct tdb_context *tdb) tdb 666 lib/tdb/common/tdb.c return tdb->map_size; tdb 669 lib/tdb/common/tdb.c int tdb_get_flags(struct tdb_context *tdb) tdb 671 lib/tdb/common/tdb.c return tdb->flags; tdb 674 lib/tdb/common/tdb.c void tdb_add_flags(struct tdb_context *tdb, unsigned flags) tdb 676 lib/tdb/common/tdb.c tdb->flags |= flags; tdb 679 lib/tdb/common/tdb.c void tdb_remove_flags(struct tdb_context *tdb, unsigned flags) tdb 681 lib/tdb/common/tdb.c tdb->flags &= ~flags; tdb 688 lib/tdb/common/tdb.c void tdb_enable_seqnum(struct tdb_context *tdb) tdb 690 lib/tdb/common/tdb.c tdb->flags |= TDB_SEQNUM; tdb 698 lib/tdb/common/tdb.c static int tdb_free_region(struct tdb_context *tdb, tdb_off_t offset, ssize_t length) tdb 705 lib/tdb/common/tdb.c if (length + offset > tdb->map_size) { tdb 706 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_free_region: adding region beyond end of file\n")); tdb 711 lib/tdb/common/tdb.c if (tdb_free(tdb, offset, &rec) == -1) { tdb 712 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_free_region: failed to add free record\n")); tdb 725 lib/tdb/common/tdb.c int tdb_wipe_all(struct tdb_context *tdb) tdb 733 lib/tdb/common/tdb.c if (tdb_lockall(tdb) != 0) { tdb 741 lib/tdb/common/tdb.c if (tdb_ofs_read(tdb, TDB_RECOVERY_HEAD, &recovery_head) == -1) { tdb 742 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_wipe_all: failed to read recovery head\n")); tdb 748 lib/tdb/common/tdb.c if (tdb->methods->tdb_read(tdb, recovery_head, &rec, sizeof(rec), DOCONV()) == -1) { tdb 749 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_wipe_all: failed to read recovery record\n")); tdb 756 lib/tdb/common/tdb.c for (i=0;i<tdb->header.hash_size;i++) { tdb 757 lib/tdb/common/tdb.c if (tdb_ofs_write(tdb, TDB_HASH_TOP(i), &offset) == -1) { tdb 758 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_wipe_all: failed to write hash %d\n", i)); tdb 764 lib/tdb/common/tdb.c if (tdb_ofs_write(tdb, FREELIST_TOP, &offset) == -1) { tdb 765 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_wipe_all: failed to write freelist\n")); tdb 773 lib/tdb/common/tdb.c data_len = (tdb->map_size - TDB_DATA_START(tdb->header.hash_size)); tdb 774 lib/tdb/common/tdb.c if (tdb_free_region(tdb, TDB_DATA_START(tdb->header.hash_size), data_len) != 0) { tdb 786 lib/tdb/common/tdb.c data_len = (recovery_head - TDB_DATA_START(tdb->header.hash_size)); tdb 787 lib/tdb/common/tdb.c if (tdb_free_region(tdb, TDB_DATA_START(tdb->header.hash_size), data_len) != 0) { tdb 791 lib/tdb/common/tdb.c data_len = tdb->map_size - (recovery_head+recovery_size); tdb 792 lib/tdb/common/tdb.c if (tdb_free_region(tdb, recovery_head+recovery_size, data_len) != 0) { tdb 797 lib/tdb/common/tdb.c if (tdb_unlockall(tdb) != 0) { tdb 798 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL,"tdb_wipe_all: failed to unlock\n")); tdb 805 lib/tdb/common/tdb.c tdb_unlockall(tdb); tdb 817 lib/tdb/common/tdb.c static int repack_traverse(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *private) tdb 830 lib/tdb/common/tdb.c int tdb_repack(struct tdb_context *tdb) tdb 835 lib/tdb/common/tdb.c if (tdb_transaction_start(tdb) != 0) { tdb 836 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, __location__ " Failed to start transaction\n")); tdb 840 lib/tdb/common/tdb.c tmp_db = tdb_open("tmpdb", tdb_hash_size(tdb), TDB_INTERNAL, O_RDWR|O_CREAT, 0); tdb 842 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, __location__ " Failed to create tmp_db\n")); tdb 843 lib/tdb/common/tdb.c tdb_transaction_cancel(tdb); tdb 850 lib/tdb/common/tdb.c if (tdb_traverse_read(tdb, repack_traverse, &state) == -1) { tdb 851 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, __location__ " Failed to traverse copying out\n")); tdb 852 lib/tdb/common/tdb.c tdb_transaction_cancel(tdb); tdb 858 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, __location__ " Error during traversal\n")); tdb 859 lib/tdb/common/tdb.c tdb_transaction_cancel(tdb); tdb 864 lib/tdb/common/tdb.c if (tdb_wipe_all(tdb) != 0) { tdb 865 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, __location__ " Failed to wipe database\n")); tdb 866 lib/tdb/common/tdb.c tdb_transaction_cancel(tdb); tdb 872 lib/tdb/common/tdb.c state.dest_db = tdb; tdb 875 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, __location__ " Failed to traverse copying back\n")); tdb 876 lib/tdb/common/tdb.c tdb_transaction_cancel(tdb); tdb 882 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, __location__ " Error during second traversal\n")); tdb 883 lib/tdb/common/tdb.c tdb_transaction_cancel(tdb); tdb 890 lib/tdb/common/tdb.c if (tdb_transaction_commit(tdb) != 0) { tdb 891 lib/tdb/common/tdb.c TDB_LOG((tdb, TDB_DEBUG_FATAL, __location__ " Failed to commit\n")); tdb 59 lib/tdb/common/tdb_private.h #define TDB_HASHTABLE_SIZE(tdb) ((tdb->header.hash_size+1)*sizeof(tdb_off_t)) tdb 69 lib/tdb/common/tdb_private.h #define TDB_LOG(x) tdb->log.log_fn x tdb 81 lib/tdb/common/tdb_private.h #define BUCKET(hash) ((hash) % tdb->header.hash_size) tdb 83 lib/tdb/common/tdb_private.h #define DOCONV() (tdb->flags & TDB_CONVERT) tdb 177 lib/tdb/common/tdb_private.h int tdb_munmap(struct tdb_context *tdb); tdb 178 lib/tdb/common/tdb_private.h void tdb_mmap(struct tdb_context *tdb); tdb 179 lib/tdb/common/tdb_private.h int tdb_lock(struct tdb_context *tdb, int list, int ltype); tdb 180 lib/tdb/common/tdb_private.h int tdb_lock_nonblock(struct tdb_context *tdb, int list, int ltype); tdb 181 lib/tdb/common/tdb_private.h int tdb_unlock(struct tdb_context *tdb, int list, int ltype); tdb 182 lib/tdb/common/tdb_private.h int tdb_brlock(struct tdb_context *tdb, tdb_off_t offset, int rw_type, int lck_type, int probe, size_t len); tdb 183 lib/tdb/common/tdb_private.h int tdb_transaction_lock(struct tdb_context *tdb, int ltype); tdb 184 lib/tdb/common/tdb_private.h int tdb_transaction_unlock(struct tdb_context *tdb); tdb 185 lib/tdb/common/tdb_private.h int tdb_brlock_upgrade(struct tdb_context *tdb, tdb_off_t offset, size_t len); tdb 186 lib/tdb/common/tdb_private.h int tdb_write_lock_record(struct tdb_context *tdb, tdb_off_t off); tdb 187 lib/tdb/common/tdb_private.h int tdb_write_unlock_record(struct tdb_context *tdb, tdb_off_t off); tdb 188 lib/tdb/common/tdb_private.h int tdb_ofs_read(struct tdb_context *tdb, tdb_off_t offset, tdb_off_t *d); tdb 189 lib/tdb/common/tdb_private.h int tdb_ofs_write(struct tdb_context *tdb, tdb_off_t offset, tdb_off_t *d); tdb 191 lib/tdb/common/tdb_private.h int tdb_free(struct tdb_context *tdb, tdb_off_t offset, struct list_struct *rec); tdb 192 lib/tdb/common/tdb_private.h tdb_off_t tdb_allocate(struct tdb_context *tdb, tdb_len_t length, struct list_struct *rec); tdb 193 lib/tdb/common/tdb_private.h int tdb_ofs_read(struct tdb_context *tdb, tdb_off_t offset, tdb_off_t *d); tdb 194 lib/tdb/common/tdb_private.h int tdb_ofs_write(struct tdb_context *tdb, tdb_off_t offset, tdb_off_t *d); tdb 195 lib/tdb/common/tdb_private.h int tdb_lock_record(struct tdb_context *tdb, tdb_off_t off); tdb 196 lib/tdb/common/tdb_private.h int tdb_unlock_record(struct tdb_context *tdb, tdb_off_t off); tdb 197 lib/tdb/common/tdb_private.h int tdb_rec_read(struct tdb_context *tdb, tdb_off_t offset, struct list_struct *rec); tdb 198 lib/tdb/common/tdb_private.h int tdb_rec_write(struct tdb_context *tdb, tdb_off_t offset, struct list_struct *rec); tdb 199 lib/tdb/common/tdb_private.h int tdb_do_delete(struct tdb_context *tdb, tdb_off_t rec_ptr, struct list_struct *rec); tdb 200 lib/tdb/common/tdb_private.h unsigned char *tdb_alloc_read(struct tdb_context *tdb, tdb_off_t offset, tdb_len_t len); tdb 201 lib/tdb/common/tdb_private.h int tdb_parse_data(struct tdb_context *tdb, TDB_DATA key, tdb 206 lib/tdb/common/tdb_private.h tdb_off_t tdb_find_lock_hash(struct tdb_context *tdb, TDB_DATA key, uint32_t hash, int locktype, tdb 208 lib/tdb/common/tdb_private.h void tdb_io_init(struct tdb_context *tdb); tdb 209 lib/tdb/common/tdb_private.h int tdb_expand(struct tdb_context *tdb, tdb_off_t size); tdb 210 lib/tdb/common/tdb_private.h int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off, tdb 128 lib/tdb/common/transaction.c static int transaction_read(struct tdb_context *tdb, tdb_off_t off, void *buf, tdb 134 lib/tdb/common/transaction.c while (len + (off % tdb->transaction->block_size) > tdb->transaction->block_size) { tdb 135 lib/tdb/common/transaction.c tdb_len_t len2 = tdb->transaction->block_size - (off % tdb->transaction->block_size); tdb 136 lib/tdb/common/transaction.c if (transaction_read(tdb, off, buf, len2, cv) != 0) { tdb 148 lib/tdb/common/transaction.c blk = off / tdb->transaction->block_size; tdb 151 lib/tdb/common/transaction.c if (tdb->transaction->num_blocks <= blk || tdb 152 lib/tdb/common/transaction.c tdb->transaction->blocks[blk] == NULL) { tdb 154 lib/tdb/common/transaction.c if (tdb->transaction->io_methods->tdb_read(tdb, off, buf, len, cv) != 0) { tdb 161 lib/tdb/common/transaction.c if (blk == tdb->transaction->num_blocks-1) { tdb 162 lib/tdb/common/transaction.c if (len > tdb->transaction->last_block_size) { tdb 168 lib/tdb/common/transaction.c memcpy(buf, tdb->transaction->blocks[blk] + (off % tdb->transaction->block_size), len); tdb 175 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "transaction_read: failed at off=%d len=%d\n", off, len)); tdb 176 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 177 lib/tdb/common/transaction.c tdb->transaction->transaction_error = 1; tdb 185 lib/tdb/common/transaction.c static int transaction_write(struct tdb_context *tdb, tdb_off_t off, tdb 193 lib/tdb/common/transaction.c off < FREELIST_TOP+TDB_HASHTABLE_SIZE(tdb)) { tdb 195 lib/tdb/common/transaction.c memcpy(&tdb->transaction->hash_heads[chain], buf, len); tdb 199 lib/tdb/common/transaction.c while (len + (off % tdb->transaction->block_size) > tdb->transaction->block_size) { tdb 200 lib/tdb/common/transaction.c tdb_len_t len2 = tdb->transaction->block_size - (off % tdb->transaction->block_size); tdb 201 lib/tdb/common/transaction.c if (transaction_write(tdb, off, buf, len2) != 0) { tdb 215 lib/tdb/common/transaction.c blk = off / tdb->transaction->block_size; tdb 216 lib/tdb/common/transaction.c off = off % tdb->transaction->block_size; tdb 218 lib/tdb/common/transaction.c if (tdb->transaction->num_blocks <= blk) { tdb 221 lib/tdb/common/transaction.c if (tdb->transaction->blocks == NULL) { tdb 226 lib/tdb/common/transaction.c tdb->transaction->blocks, tdb 230 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_OOM; tdb 233 lib/tdb/common/transaction.c memset(&new_blocks[tdb->transaction->num_blocks], 0, tdb 234 lib/tdb/common/transaction.c (1+(blk - tdb->transaction->num_blocks))*sizeof(uint8_t *)); tdb 235 lib/tdb/common/transaction.c tdb->transaction->blocks = new_blocks; tdb 236 lib/tdb/common/transaction.c tdb->transaction->num_blocks = blk+1; tdb 237 lib/tdb/common/transaction.c tdb->transaction->last_block_size = 0; tdb 241 lib/tdb/common/transaction.c if (tdb->transaction->blocks[blk] == NULL) { tdb 242 lib/tdb/common/transaction.c tdb->transaction->blocks[blk] = (uint8_t *)calloc(tdb->transaction->block_size, 1); tdb 243 lib/tdb/common/transaction.c if (tdb->transaction->blocks[blk] == NULL) { tdb 244 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_OOM; tdb 245 lib/tdb/common/transaction.c tdb->transaction->transaction_error = 1; tdb 248 lib/tdb/common/transaction.c if (tdb->transaction->old_map_size > blk * tdb->transaction->block_size) { tdb 249 lib/tdb/common/transaction.c tdb_len_t len2 = tdb->transaction->block_size; tdb 250 lib/tdb/common/transaction.c if (len2 + (blk * tdb->transaction->block_size) > tdb->transaction->old_map_size) { tdb 251 lib/tdb/common/transaction.c len2 = tdb->transaction->old_map_size - (blk * tdb->transaction->block_size); tdb 253 lib/tdb/common/transaction.c if (tdb->transaction->io_methods->tdb_read(tdb, blk * tdb->transaction->block_size, tdb 254 lib/tdb/common/transaction.c tdb->transaction->blocks[blk], tdb 256 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction->blocks[blk]); tdb 257 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 260 lib/tdb/common/transaction.c if (blk == tdb->transaction->num_blocks-1) { tdb 261 lib/tdb/common/transaction.c tdb->transaction->last_block_size = len2; tdb 268 lib/tdb/common/transaction.c memset(tdb->transaction->blocks[blk] + off, 0, len); tdb 270 lib/tdb/common/transaction.c memcpy(tdb->transaction->blocks[blk] + off, buf, len); tdb 272 lib/tdb/common/transaction.c if (blk == tdb->transaction->num_blocks-1) { tdb 273 lib/tdb/common/transaction.c if (len + off > tdb->transaction->last_block_size) { tdb 274 lib/tdb/common/transaction.c tdb->transaction->last_block_size = len + off; tdb 281 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "transaction_write: failed at off=%d len=%d\n", tdb 282 lib/tdb/common/transaction.c (blk*tdb->transaction->block_size) + off, len)); tdb 283 lib/tdb/common/transaction.c tdb->transaction->transaction_error = 1; tdb 292 lib/tdb/common/transaction.c static int transaction_write_existing(struct tdb_context *tdb, tdb_off_t off, tdb 298 lib/tdb/common/transaction.c while (len + (off % tdb->transaction->block_size) > tdb->transaction->block_size) { tdb 299 lib/tdb/common/transaction.c tdb_len_t len2 = tdb->transaction->block_size - (off % tdb->transaction->block_size); tdb 300 lib/tdb/common/transaction.c if (transaction_write_existing(tdb, off, buf, len2) != 0) { tdb 314 lib/tdb/common/transaction.c blk = off / tdb->transaction->block_size; tdb 315 lib/tdb/common/transaction.c off = off % tdb->transaction->block_size; tdb 317 lib/tdb/common/transaction.c if (tdb->transaction->num_blocks <= blk || tdb 318 lib/tdb/common/transaction.c tdb->transaction->blocks[blk] == NULL) { tdb 322 lib/tdb/common/transaction.c if (blk == tdb->transaction->num_blocks-1 && tdb 323 lib/tdb/common/transaction.c off + len > tdb->transaction->last_block_size) { tdb 324 lib/tdb/common/transaction.c if (off >= tdb->transaction->last_block_size) { tdb 327 lib/tdb/common/transaction.c len = tdb->transaction->last_block_size - off; tdb 331 lib/tdb/common/transaction.c memcpy(tdb->transaction->blocks[blk] + off, buf, len); tdb 340 lib/tdb/common/transaction.c static void transaction_next_hash_chain(struct tdb_context *tdb, uint32_t *chain) tdb 343 lib/tdb/common/transaction.c for (;h < tdb->header.hash_size;h++) { tdb 345 lib/tdb/common/transaction.c if (0 != tdb->transaction->hash_heads[h+1]) { tdb 355 lib/tdb/common/transaction.c static int transaction_oob(struct tdb_context *tdb, tdb_off_t len, int probe) tdb 357 lib/tdb/common/transaction.c if (len <= tdb->map_size) { tdb 366 lib/tdb/common/transaction.c static int transaction_expand_file(struct tdb_context *tdb, tdb_off_t size, tdb 371 lib/tdb/common/transaction.c if (transaction_write(tdb, size, NULL, addition) != 0) { tdb 381 lib/tdb/common/transaction.c static int transaction_brlock(struct tdb_context *tdb, tdb_off_t offset, tdb 401 lib/tdb/common/transaction.c int tdb_transaction_start(struct tdb_context *tdb) tdb 404 lib/tdb/common/transaction.c if (tdb->read_only || (tdb->flags & TDB_INTERNAL) || tdb->traverse_read) { tdb 405 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_start: cannot start a transaction on a read-only or internal db\n")); tdb 406 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_EINVAL; tdb 411 lib/tdb/common/transaction.c if (tdb->transaction != NULL) { tdb 412 lib/tdb/common/transaction.c tdb->transaction->nesting++; tdb 413 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_TRACE, "tdb_transaction_start: nesting %d\n", tdb 414 lib/tdb/common/transaction.c tdb->transaction->nesting)); tdb 418 lib/tdb/common/transaction.c if (tdb->num_locks != 0 || tdb->global_lock.count) { tdb 422 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_start: cannot start a transaction with locks held\n")); tdb 423 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_LOCK; tdb 427 lib/tdb/common/transaction.c if (tdb->travlocks.next != NULL) { tdb 431 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_start: cannot start a transaction within a traverse\n")); tdb 432 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_LOCK; tdb 436 lib/tdb/common/transaction.c tdb->transaction = (struct tdb_transaction *) tdb 438 lib/tdb/common/transaction.c if (tdb->transaction == NULL) { tdb 439 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_OOM; tdb 444 lib/tdb/common/transaction.c tdb->transaction->block_size = tdb->page_size; tdb 449 lib/tdb/common/transaction.c if (tdb_transaction_lock(tdb, F_WRLCK) == -1) { tdb 450 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction->blocks); tdb 451 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction); tdb 457 lib/tdb/common/transaction.c if (tdb_brlock(tdb, FREELIST_TOP, F_RDLCK, F_SETLKW, 0, 0) == -1) { tdb 458 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_start: failed to get hash locks\n")); tdb 459 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_LOCK; tdb 465 lib/tdb/common/transaction.c tdb->transaction->hash_heads = (uint32_t *) tdb 466 lib/tdb/common/transaction.c calloc(tdb->header.hash_size+1, sizeof(uint32_t)); tdb 467 lib/tdb/common/transaction.c if (tdb->transaction->hash_heads == NULL) { tdb 468 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_OOM; tdb 471 lib/tdb/common/transaction.c if (tdb->methods->tdb_read(tdb, FREELIST_TOP, tdb->transaction->hash_heads, tdb 472 lib/tdb/common/transaction.c TDB_HASHTABLE_SIZE(tdb), 0) != 0) { tdb 473 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_start: failed to read hash heads\n")); tdb 474 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 480 lib/tdb/common/transaction.c tdb->methods->tdb_oob(tdb, tdb->map_size + 1, 1); tdb 481 lib/tdb/common/transaction.c tdb->transaction->old_map_size = tdb->map_size; tdb 485 lib/tdb/common/transaction.c tdb->transaction->io_methods = tdb->methods; tdb 486 lib/tdb/common/transaction.c tdb->methods = &transaction_methods; tdb 491 lib/tdb/common/transaction.c tdb_brlock(tdb, FREELIST_TOP, F_UNLCK, F_SETLKW, 0, 0); tdb 492 lib/tdb/common/transaction.c tdb_transaction_unlock(tdb); tdb 493 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction->blocks); tdb 494 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction->hash_heads); tdb 495 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction); tdb 503 lib/tdb/common/transaction.c int tdb_transaction_cancel(struct tdb_context *tdb) tdb 507 lib/tdb/common/transaction.c if (tdb->transaction == NULL) { tdb 508 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_cancel: no transaction\n")); tdb 512 lib/tdb/common/transaction.c if (tdb->transaction->nesting != 0) { tdb 513 lib/tdb/common/transaction.c tdb->transaction->transaction_error = 1; tdb 514 lib/tdb/common/transaction.c tdb->transaction->nesting--; tdb 518 lib/tdb/common/transaction.c tdb->map_size = tdb->transaction->old_map_size; tdb 521 lib/tdb/common/transaction.c for (i=0;i<tdb->transaction->num_blocks;i++) { tdb 522 lib/tdb/common/transaction.c if (tdb->transaction->blocks[i] != NULL) { tdb 523 lib/tdb/common/transaction.c free(tdb->transaction->blocks[i]); tdb 526 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction->blocks); tdb 529 lib/tdb/common/transaction.c if (tdb->global_lock.count != 0) { tdb 530 lib/tdb/common/transaction.c tdb_brlock(tdb, FREELIST_TOP, F_UNLCK, F_SETLKW, 0, 4*tdb->header.hash_size); tdb 531 lib/tdb/common/transaction.c tdb->global_lock.count = 0; tdb 535 lib/tdb/common/transaction.c if (tdb->num_locks != 0) { tdb 536 lib/tdb/common/transaction.c for (i=0;i<tdb->num_lockrecs;i++) { tdb 537 lib/tdb/common/transaction.c tdb_brlock(tdb,FREELIST_TOP+4*tdb->lockrecs[i].list, tdb 540 lib/tdb/common/transaction.c tdb->num_locks = 0; tdb 541 lib/tdb/common/transaction.c tdb->num_lockrecs = 0; tdb 542 lib/tdb/common/transaction.c SAFE_FREE(tdb->lockrecs); tdb 546 lib/tdb/common/transaction.c tdb->methods = tdb->transaction->io_methods; tdb 548 lib/tdb/common/transaction.c tdb_brlock(tdb, FREELIST_TOP, F_UNLCK, F_SETLKW, 0, 0); tdb 549 lib/tdb/common/transaction.c tdb_transaction_unlock(tdb); tdb 550 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction->hash_heads); tdb 551 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction); tdb 559 lib/tdb/common/transaction.c static int transaction_sync(struct tdb_context *tdb, tdb_off_t offset, tdb_len_t length) tdb 561 lib/tdb/common/transaction.c if (fsync(tdb->fd) != 0) { tdb 562 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 563 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction: fsync failed\n")); tdb 567 lib/tdb/common/transaction.c if (tdb->map_ptr) { tdb 568 lib/tdb/common/transaction.c tdb_off_t moffset = offset & ~(tdb->page_size-1); tdb 569 lib/tdb/common/transaction.c if (msync(moffset + (char *)tdb->map_ptr, tdb 571 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 572 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction: msync failed - %s\n", tdb 585 lib/tdb/common/transaction.c static tdb_len_t tdb_recovery_size(struct tdb_context *tdb) tdb 591 lib/tdb/common/transaction.c for (i=0;i<tdb->transaction->num_blocks;i++) { tdb 592 lib/tdb/common/transaction.c if (i * tdb->transaction->block_size >= tdb->transaction->old_map_size) { tdb 595 lib/tdb/common/transaction.c if (tdb->transaction->blocks[i] == NULL) { tdb 599 lib/tdb/common/transaction.c if (i == tdb->transaction->num_blocks-1) { tdb 600 lib/tdb/common/transaction.c recovery_size += tdb->transaction->last_block_size; tdb 602 lib/tdb/common/transaction.c recovery_size += tdb->transaction->block_size; tdb 613 lib/tdb/common/transaction.c static int tdb_recovery_allocate(struct tdb_context *tdb, tdb 619 lib/tdb/common/transaction.c const struct tdb_methods *methods = tdb->transaction->io_methods; tdb 622 lib/tdb/common/transaction.c if (tdb_ofs_read(tdb, TDB_RECOVERY_HEAD, &recovery_head) == -1) { tdb 623 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to read recovery head\n")); tdb 630 lib/tdb/common/transaction.c methods->tdb_read(tdb, recovery_head, &rec, sizeof(rec), DOCONV()) == -1) { tdb 631 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to read recovery record\n")); tdb 635 lib/tdb/common/transaction.c *recovery_size = tdb_recovery_size(tdb); tdb 650 lib/tdb/common/transaction.c if (tdb_free(tdb, recovery_head, &rec) == -1) { tdb 651 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to free previous recovery area\n")); tdb 657 lib/tdb/common/transaction.c *recovery_size = tdb_recovery_size(tdb); tdb 660 lib/tdb/common/transaction.c *recovery_max_size = TDB_ALIGN(sizeof(rec) + *recovery_size, tdb->page_size) - sizeof(rec); tdb 661 lib/tdb/common/transaction.c *recovery_offset = tdb->map_size; tdb 664 lib/tdb/common/transaction.c if (methods->tdb_expand_file(tdb, tdb->transaction->old_map_size, tdb 665 lib/tdb/common/transaction.c (tdb->map_size - tdb->transaction->old_map_size) + tdb 667 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to create recovery area\n")); tdb 672 lib/tdb/common/transaction.c methods->tdb_oob(tdb, tdb->map_size + 1, 1); tdb 676 lib/tdb/common/transaction.c tdb->transaction->old_map_size = tdb->map_size; tdb 681 lib/tdb/common/transaction.c if (methods->tdb_write(tdb, TDB_RECOVERY_HEAD, tdb 683 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to write recovery head\n")); tdb 686 lib/tdb/common/transaction.c if (transaction_write_existing(tdb, TDB_RECOVERY_HEAD, &recovery_head, sizeof(tdb_off_t)) == -1) { tdb 687 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to write recovery head\n")); tdb 698 lib/tdb/common/transaction.c static int transaction_setup_recovery(struct tdb_context *tdb, tdb 703 lib/tdb/common/transaction.c const struct tdb_methods *methods = tdb->transaction->io_methods; tdb 706 lib/tdb/common/transaction.c tdb_off_t old_map_size = tdb->transaction->old_map_size; tdb 713 lib/tdb/common/transaction.c if (tdb_recovery_allocate(tdb, &recovery_size, tdb 720 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_OOM; tdb 736 lib/tdb/common/transaction.c for (i=0;i<tdb->transaction->num_blocks;i++) { tdb 740 lib/tdb/common/transaction.c if (tdb->transaction->blocks[i] == NULL) { tdb 744 lib/tdb/common/transaction.c offset = i * tdb->transaction->block_size; tdb 745 lib/tdb/common/transaction.c length = tdb->transaction->block_size; tdb 746 lib/tdb/common/transaction.c if (i == tdb->transaction->num_blocks-1) { tdb 747 lib/tdb/common/transaction.c length = tdb->transaction->last_block_size; tdb 753 lib/tdb/common/transaction.c if (offset + length > tdb->transaction->old_map_size) { tdb 754 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_setup_recovery: transaction data over new region boundary\n")); tdb 756 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_CORRUPT; tdb 767 lib/tdb/common/transaction.c if (methods->tdb_read(tdb, offset, p + 8, length, 0) != 0) { tdb 769 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 781 lib/tdb/common/transaction.c if (methods->tdb_write(tdb, recovery_offset, data, sizeof(*rec) + recovery_size) == -1) { tdb 782 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_setup_recovery: failed to write recovery data\n")); tdb 784 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 787 lib/tdb/common/transaction.c if (transaction_write_existing(tdb, recovery_offset, data, sizeof(*rec) + recovery_size) == -1) { tdb 788 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_setup_recovery: failed to write secondary recovery data\n")); tdb 790 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 797 lib/tdb/common/transaction.c if (transaction_sync(tdb, recovery_offset, sizeof(*rec) + recovery_size) == -1) { tdb 809 lib/tdb/common/transaction.c if (methods->tdb_write(tdb, *magic_offset, &magic, sizeof(magic)) == -1) { tdb 810 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_setup_recovery: failed to write recovery magic\n")); tdb 811 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 814 lib/tdb/common/transaction.c if (transaction_write_existing(tdb, *magic_offset, &magic, sizeof(magic)) == -1) { tdb 815 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_setup_recovery: failed to write secondary recovery magic\n")); tdb 816 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 821 lib/tdb/common/transaction.c if (transaction_sync(tdb, *magic_offset, sizeof(magic)) == -1) { tdb 831 lib/tdb/common/transaction.c int tdb_transaction_commit(struct tdb_context *tdb) tdb 838 lib/tdb/common/transaction.c if (tdb->transaction == NULL) { tdb 839 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_commit: no transaction\n")); tdb 843 lib/tdb/common/transaction.c if (tdb->transaction->transaction_error) { tdb 844 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 845 lib/tdb/common/transaction.c tdb_transaction_cancel(tdb); tdb 846 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_commit: transaction error pending\n")); tdb 851 lib/tdb/common/transaction.c if (tdb->transaction->nesting != 0) { tdb 852 lib/tdb/common/transaction.c tdb->transaction->nesting--; tdb 857 lib/tdb/common/transaction.c if (tdb->transaction->blocks == NULL) { tdb 858 lib/tdb/common/transaction.c tdb_transaction_cancel(tdb); tdb 862 lib/tdb/common/transaction.c methods = tdb->transaction->io_methods; tdb 866 lib/tdb/common/transaction.c if (tdb->num_locks || tdb->global_lock.count) { tdb 867 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_LOCK; tdb 868 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_commit: locks pending on commit\n")); tdb 869 lib/tdb/common/transaction.c tdb_transaction_cancel(tdb); tdb 874 lib/tdb/common/transaction.c if (tdb_brlock_upgrade(tdb, FREELIST_TOP, 0) == -1) { tdb 875 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_start: failed to upgrade hash locks\n")); tdb 876 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_LOCK; tdb 877 lib/tdb/common/transaction.c tdb_transaction_cancel(tdb); tdb 883 lib/tdb/common/transaction.c if (tdb_brlock(tdb, GLOBAL_LOCK, F_WRLCK, F_SETLKW, 0, 1) == -1) { tdb 884 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_transaction_commit: failed to get global lock\n")); tdb 885 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_LOCK; tdb 886 lib/tdb/common/transaction.c tdb_transaction_cancel(tdb); tdb 890 lib/tdb/common/transaction.c if (!(tdb->flags & TDB_NOSYNC)) { tdb 892 lib/tdb/common/transaction.c if (transaction_setup_recovery(tdb, &magic_offset) == -1) { tdb 893 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_commit: failed to setup recovery data\n")); tdb 894 lib/tdb/common/transaction.c tdb_brlock(tdb, GLOBAL_LOCK, F_UNLCK, F_SETLKW, 0, 1); tdb 895 lib/tdb/common/transaction.c tdb_transaction_cancel(tdb); tdb 901 lib/tdb/common/transaction.c if (tdb->map_size != tdb->transaction->old_map_size) { tdb 902 lib/tdb/common/transaction.c if (methods->tdb_expand_file(tdb, tdb->transaction->old_map_size, tdb 903 lib/tdb/common/transaction.c tdb->map_size - tdb 904 lib/tdb/common/transaction.c tdb->transaction->old_map_size) == -1) { tdb 905 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 906 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_commit: expansion failed\n")); tdb 907 lib/tdb/common/transaction.c tdb_brlock(tdb, GLOBAL_LOCK, F_UNLCK, F_SETLKW, 0, 1); tdb 908 lib/tdb/common/transaction.c tdb_transaction_cancel(tdb); tdb 911 lib/tdb/common/transaction.c tdb->map_size = tdb->transaction->old_map_size; tdb 912 lib/tdb/common/transaction.c methods->tdb_oob(tdb, tdb->map_size + 1, 1); tdb 916 lib/tdb/common/transaction.c for (i=0;i<tdb->transaction->num_blocks;i++) { tdb 920 lib/tdb/common/transaction.c if (tdb->transaction->blocks[i] == NULL) { tdb 924 lib/tdb/common/transaction.c offset = i * tdb->transaction->block_size; tdb 925 lib/tdb/common/transaction.c length = tdb->transaction->block_size; tdb 926 lib/tdb/common/transaction.c if (i == tdb->transaction->num_blocks-1) { tdb 927 lib/tdb/common/transaction.c length = tdb->transaction->last_block_size; tdb 930 lib/tdb/common/transaction.c if (methods->tdb_write(tdb, offset, tdb->transaction->blocks[i], length) == -1) { tdb 931 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_commit: write failed during commit\n")); tdb 936 lib/tdb/common/transaction.c tdb->methods = methods; tdb 937 lib/tdb/common/transaction.c tdb_transaction_recover(tdb); tdb 939 lib/tdb/common/transaction.c tdb_transaction_cancel(tdb); tdb 940 lib/tdb/common/transaction.c tdb_brlock(tdb, GLOBAL_LOCK, F_UNLCK, F_SETLKW, 0, 1); tdb 942 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_commit: write failed\n")); tdb 945 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction->blocks[i]); tdb 948 lib/tdb/common/transaction.c SAFE_FREE(tdb->transaction->blocks); tdb 949 lib/tdb/common/transaction.c tdb->transaction->num_blocks = 0; tdb 951 lib/tdb/common/transaction.c if (!(tdb->flags & TDB_NOSYNC)) { tdb 953 lib/tdb/common/transaction.c if (transaction_sync(tdb, 0, tdb->map_size) == -1) { tdb 958 lib/tdb/common/transaction.c if (methods->tdb_write(tdb, magic_offset, &zero, 4) == -1) { tdb 959 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_commit: failed to remove recovery magic\n")); tdb 964 lib/tdb/common/transaction.c if (transaction_sync(tdb, magic_offset, 4) == -1) { tdb 969 lib/tdb/common/transaction.c tdb_brlock(tdb, GLOBAL_LOCK, F_UNLCK, F_SETLKW, 0, 1); tdb 983 lib/tdb/common/transaction.c utime(tdb->name, NULL); tdb 988 lib/tdb/common/transaction.c tdb_transaction_cancel(tdb); tdb 999 lib/tdb/common/transaction.c int tdb_transaction_recover(struct tdb_context *tdb) tdb 1007 lib/tdb/common/transaction.c if (tdb_ofs_read(tdb, TDB_RECOVERY_HEAD, &recovery_head) == -1) { tdb 1008 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to read recovery head\n")); tdb 1009 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 1019 lib/tdb/common/transaction.c if (tdb->methods->tdb_read(tdb, recovery_head, &rec, tdb 1021 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to read recovery record\n")); tdb 1022 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 1031 lib/tdb/common/transaction.c if (tdb->read_only) { tdb 1032 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: attempt to recover read only database\n")); tdb 1033 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_CORRUPT; tdb 1041 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to allocate recovery data\n")); tdb 1042 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_OOM; tdb 1047 lib/tdb/common/transaction.c if (tdb->methods->tdb_read(tdb, recovery_head + sizeof(rec), data, tdb 1049 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to read recovery data\n")); tdb 1050 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 1064 lib/tdb/common/transaction.c if (tdb->methods->tdb_write(tdb, ofs, p+8, len) == -1) { tdb 1066 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to recover %d bytes at offset %d\n", len, ofs)); tdb 1067 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 1075 lib/tdb/common/transaction.c if (transaction_sync(tdb, 0, tdb->map_size) == -1) { tdb 1076 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to sync recovery\n")); tdb 1077 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 1083 lib/tdb/common/transaction.c if (tdb_ofs_write(tdb, TDB_RECOVERY_HEAD, &zero) == -1) { tdb 1084 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to remove recovery head\n")); tdb 1085 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 1091 lib/tdb/common/transaction.c if (tdb_ofs_write(tdb, recovery_head + offsetof(struct list_struct, magic), tdb 1093 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to remove recovery magic\n")); tdb 1094 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 1099 lib/tdb/common/transaction.c tdb_munmap(tdb); tdb 1100 lib/tdb/common/transaction.c if (ftruncate(tdb->fd, recovery_eof) != 0) { tdb 1101 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to reduce to recovery size\n")); tdb 1102 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 1105 lib/tdb/common/transaction.c tdb->map_size = recovery_eof; tdb 1106 lib/tdb/common/transaction.c tdb_mmap(tdb); tdb 1108 lib/tdb/common/transaction.c if (transaction_sync(tdb, 0, recovery_eof) == -1) { tdb 1109 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to sync2 recovery\n")); tdb 1110 lib/tdb/common/transaction.c tdb->ecode = TDB_ERR_IO; tdb 1114 lib/tdb/common/transaction.c TDB_LOG((tdb, TDB_DEBUG_TRACE, "tdb_transaction_recover: recovered %d byte database\n", tdb 31 lib/tdb/common/traverse.c static int tdb_next_lock(struct tdb_context *tdb, struct tdb_traverse_lock *tlock, tdb 37 lib/tdb/common/traverse.c for (; tlock->hash < tdb->header.hash_size; tlock->hash++) { tdb 67 lib/tdb/common/traverse.c tdb->methods->next_hash_chain(tdb, &tlock->hash); tdb 68 lib/tdb/common/traverse.c if (tlock->hash == tdb->header.hash_size) { tdb 73 lib/tdb/common/traverse.c if (tdb_lock(tdb, tlock->hash, tlock->lock_rw) == -1) tdb 78 lib/tdb/common/traverse.c if (tdb_ofs_read(tdb, TDB_HASH_TOP(tlock->hash), tdb 83 lib/tdb/common/traverse.c if (tdb_unlock_record(tdb, tlock->off) != 0) tdb 89 lib/tdb/common/traverse.c if (tdb_rec_read(tdb, tlock->off, rec) == -1) tdb 97 lib/tdb/common/traverse.c if (tdb_rec_read(tdb, tlock->off, rec) == -1) tdb 102 lib/tdb/common/traverse.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_next_lock: loop detected.\n")); tdb 108 lib/tdb/common/traverse.c if (tdb_lock_record(tdb, tlock->off) != 0) tdb 116 lib/tdb/common/traverse.c if (!(tdb->read_only || tdb->traverse_read) && tdb 117 lib/tdb/common/traverse.c tdb_do_delete(tdb, current, rec) != 0) tdb 120 lib/tdb/common/traverse.c tdb_unlock(tdb, tlock->hash, tlock->lock_rw); tdb 128 lib/tdb/common/traverse.c if (tdb_unlock(tdb, tlock->hash, tlock->lock_rw) != 0) tdb 129 lib/tdb/common/traverse.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_next_lock: On error unlock failed!\n")); tdb 138 lib/tdb/common/traverse.c static int tdb_traverse_internal(struct tdb_context *tdb, tdb 149 lib/tdb/common/traverse.c tl->next = tdb->travlocks.next; tdb 152 lib/tdb/common/traverse.c tdb->travlocks.next = tl; tdb 155 lib/tdb/common/traverse.c while ((ret = tdb_next_lock(tdb, tl, &rec)) > 0) { tdb 158 lib/tdb/common/traverse.c key.dptr = tdb_alloc_read(tdb, tl->off + sizeof(rec), tdb 162 lib/tdb/common/traverse.c if (tdb_unlock(tdb, tl->hash, tl->lock_rw) != 0) tdb 164 lib/tdb/common/traverse.c if (tdb_unlock_record(tdb, tl->off) != 0) tdb 165 lib/tdb/common/traverse.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_traverse: key.dptr == NULL and unlock_record failed!\n")); tdb 173 lib/tdb/common/traverse.c if (tdb_unlock(tdb, tl->hash, tl->lock_rw) != 0) { tdb 178 lib/tdb/common/traverse.c if (fn && fn(tdb, key, dbuf, private_data)) { tdb 181 lib/tdb/common/traverse.c if (tdb_unlock_record(tdb, tl->off) != 0) { tdb 182 lib/tdb/common/traverse.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_traverse: unlock_record failed!\n"));; tdb 191 lib/tdb/common/traverse.c tdb->travlocks.next = tl->next; tdb 202 lib/tdb/common/traverse.c int tdb_traverse_read(struct tdb_context *tdb, tdb 207 lib/tdb/common/traverse.c bool in_transaction = (tdb->transaction != NULL); tdb 212 lib/tdb/common/traverse.c if (tdb_transaction_lock(tdb, F_RDLCK)) { tdb 217 lib/tdb/common/traverse.c tdb->traverse_read++; tdb 218 lib/tdb/common/traverse.c ret = tdb_traverse_internal(tdb, fn, private_data, &tl); tdb 219 lib/tdb/common/traverse.c tdb->traverse_read--; tdb 222 lib/tdb/common/traverse.c tdb_transaction_unlock(tdb); tdb 235 lib/tdb/common/traverse.c int tdb_traverse(struct tdb_context *tdb, tdb 240 lib/tdb/common/traverse.c bool in_transaction = (tdb->transaction != NULL); tdb 242 lib/tdb/common/traverse.c if (tdb->read_only || tdb->traverse_read) { tdb 243 lib/tdb/common/traverse.c return tdb_traverse_read(tdb, fn, private_data); tdb 247 lib/tdb/common/traverse.c if (tdb_transaction_lock(tdb, F_WRLCK)) { tdb 252 lib/tdb/common/traverse.c tdb->traverse_write++; tdb 253 lib/tdb/common/traverse.c ret = tdb_traverse_internal(tdb, fn, private_data, &tl); tdb 254 lib/tdb/common/traverse.c tdb->traverse_write--; tdb 257 lib/tdb/common/traverse.c tdb_transaction_unlock(tdb); tdb 265 lib/tdb/common/traverse.c TDB_DATA tdb_firstkey(struct tdb_context *tdb) tdb 271 lib/tdb/common/traverse.c if (tdb_unlock_record(tdb, tdb->travlocks.off) != 0) tdb 273 lib/tdb/common/traverse.c tdb->travlocks.off = tdb->travlocks.hash = 0; tdb 274 lib/tdb/common/traverse.c tdb->travlocks.lock_rw = F_RDLCK; tdb 277 lib/tdb/common/traverse.c if (tdb_next_lock(tdb, &tdb->travlocks, &rec) <= 0) tdb 281 lib/tdb/common/traverse.c key.dptr =tdb_alloc_read(tdb,tdb->travlocks.off+sizeof(rec),key.dsize); tdb 284 lib/tdb/common/traverse.c if (tdb_unlock(tdb, tdb->travlocks.hash, tdb->travlocks.lock_rw) != 0) tdb 285 lib/tdb/common/traverse.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_firstkey: error occurred while tdb_unlocking!\n")); tdb 290 lib/tdb/common/traverse.c TDB_DATA tdb_nextkey(struct tdb_context *tdb, TDB_DATA oldkey) tdb 298 lib/tdb/common/traverse.c if (tdb->travlocks.off) { tdb 299 lib/tdb/common/traverse.c if (tdb_lock(tdb,tdb->travlocks.hash,tdb->travlocks.lock_rw)) tdb 301 lib/tdb/common/traverse.c if (tdb_rec_read(tdb, tdb->travlocks.off, &rec) == -1 tdb 302 lib/tdb/common/traverse.c || !(k = tdb_alloc_read(tdb,tdb->travlocks.off+sizeof(rec), tdb 306 lib/tdb/common/traverse.c if (tdb_unlock_record(tdb, tdb->travlocks.off) != 0) { tdb 310 lib/tdb/common/traverse.c if (tdb_unlock(tdb, tdb->travlocks.hash, tdb->travlocks.lock_rw) != 0) { tdb 314 lib/tdb/common/traverse.c tdb->travlocks.off = 0; tdb 320 lib/tdb/common/traverse.c if (!tdb->travlocks.off) { tdb 322 lib/tdb/common/traverse.c tdb->travlocks.off = tdb_find_lock_hash(tdb, oldkey, tdb->hash_fn(&oldkey), tdb->travlocks.lock_rw, &rec); tdb 323 lib/tdb/common/traverse.c if (!tdb->travlocks.off) tdb 325 lib/tdb/common/traverse.c tdb->travlocks.hash = BUCKET(rec.full_hash); tdb 326 lib/tdb/common/traverse.c if (tdb_lock_record(tdb, tdb->travlocks.off) != 0) { tdb 327 lib/tdb/common/traverse.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_nextkey: lock_record failed (%s)!\n", strerror(errno))); tdb 331 lib/tdb/common/traverse.c oldhash = tdb->travlocks.hash; tdb 335 lib/tdb/common/traverse.c if (tdb_next_lock(tdb, &tdb->travlocks, &rec) > 0) { tdb 337 lib/tdb/common/traverse.c key.dptr = tdb_alloc_read(tdb, tdb->travlocks.off+sizeof(rec), tdb 340 lib/tdb/common/traverse.c if (tdb_unlock(tdb, tdb->travlocks.hash, tdb->travlocks.lock_rw) != 0) tdb 341 lib/tdb/common/traverse.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_nextkey: WARNING tdb_unlock failed!\n")); tdb 344 lib/tdb/common/traverse.c if (tdb_unlock(tdb, BUCKET(oldhash), tdb->travlocks.lock_rw) != 0) tdb 345 lib/tdb/common/traverse.c TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_nextkey: WARNING tdb_unlock failed!\n")); tdb 52 lib/tdb/include/tdb.h #define TDB_ERRCODE(code, ret) ((tdb->ecode = (code)), ret) tdb 98 lib/tdb/include/tdb.h void tdb_set_max_dead(struct tdb_context *tdb, int max_dead); tdb 100 lib/tdb/include/tdb.h int tdb_reopen(struct tdb_context *tdb); tdb 102 lib/tdb/include/tdb.h void tdb_set_logging_function(struct tdb_context *tdb, const struct tdb_logging_context *log_ctx); tdb 103 lib/tdb/include/tdb.h enum TDB_ERROR tdb_error(struct tdb_context *tdb); tdb 104 lib/tdb/include/tdb.h const char *tdb_errorstr(struct tdb_context *tdb); tdb 105 lib/tdb/include/tdb.h TDB_DATA tdb_fetch(struct tdb_context *tdb, TDB_DATA key); tdb 106 lib/tdb/include/tdb.h int tdb_parse_record(struct tdb_context *tdb, TDB_DATA key, tdb 110 lib/tdb/include/tdb.h int tdb_delete(struct tdb_context *tdb, TDB_DATA key); tdb 111 lib/tdb/include/tdb.h int tdb_store(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf, int flag); tdb 112 lib/tdb/include/tdb.h int tdb_append(struct tdb_context *tdb, TDB_DATA key, TDB_DATA new_dbuf); tdb 113 lib/tdb/include/tdb.h int tdb_close(struct tdb_context *tdb); tdb 114 lib/tdb/include/tdb.h TDB_DATA tdb_firstkey(struct tdb_context *tdb); tdb 115 lib/tdb/include/tdb.h TDB_DATA tdb_nextkey(struct tdb_context *tdb, TDB_DATA key); tdb 116 lib/tdb/include/tdb.h int tdb_traverse(struct tdb_context *tdb, tdb_traverse_func fn, void *); tdb 117 lib/tdb/include/tdb.h int tdb_traverse_read(struct tdb_context *tdb, tdb_traverse_func fn, void *); tdb 118 lib/tdb/include/tdb.h int tdb_exists(struct tdb_context *tdb, TDB_DATA key); tdb 119 lib/tdb/include/tdb.h int tdb_lockall(struct tdb_context *tdb); tdb 120 lib/tdb/include/tdb.h int tdb_lockall_nonblock(struct tdb_context *tdb); tdb 121 lib/tdb/include/tdb.h int tdb_unlockall(struct tdb_context *tdb); tdb 122 lib/tdb/include/tdb.h int tdb_lockall_read(struct tdb_context *tdb); tdb 123 lib/tdb/include/tdb.h int tdb_lockall_read_nonblock(struct tdb_context *tdb); tdb 124 lib/tdb/include/tdb.h int tdb_unlockall_read(struct tdb_context *tdb); tdb 125 lib/tdb/include/tdb.h int tdb_lockall_mark(struct tdb_context *tdb); tdb 126 lib/tdb/include/tdb.h int tdb_lockall_unmark(struct tdb_context *tdb); tdb 127 lib/tdb/include/tdb.h const char *tdb_name(struct tdb_context *tdb); tdb 128 lib/tdb/include/tdb.h int tdb_fd(struct tdb_context *tdb); tdb 129 lib/tdb/include/tdb.h tdb_log_func tdb_log_fn(struct tdb_context *tdb); tdb 130 lib/tdb/include/tdb.h void *tdb_get_logging_private(struct tdb_context *tdb); tdb 131 lib/tdb/include/tdb.h int tdb_transaction_start(struct tdb_context *tdb); tdb 132 lib/tdb/include/tdb.h int tdb_transaction_commit(struct tdb_context *tdb); tdb 133 lib/tdb/include/tdb.h int tdb_transaction_cancel(struct tdb_context *tdb); tdb 134 lib/tdb/include/tdb.h int tdb_transaction_recover(struct tdb_context *tdb); tdb 135 lib/tdb/include/tdb.h int tdb_get_seqnum(struct tdb_context *tdb); tdb 136 lib/tdb/include/tdb.h int tdb_hash_size(struct tdb_context *tdb); tdb 137 lib/tdb/include/tdb.h size_t tdb_map_size(struct tdb_context *tdb); tdb 138 lib/tdb/include/tdb.h int tdb_get_flags(struct tdb_context *tdb); tdb 139 lib/tdb/include/tdb.h void tdb_add_flags(struct tdb_context *tdb, unsigned flag); tdb 140 lib/tdb/include/tdb.h void tdb_remove_flags(struct tdb_context *tdb, unsigned flag); tdb 141 lib/tdb/include/tdb.h void tdb_enable_seqnum(struct tdb_context *tdb); tdb 142 lib/tdb/include/tdb.h void tdb_increment_seqnum_nonblock(struct tdb_context *tdb); tdb 145 lib/tdb/include/tdb.h int tdb_chainlock(struct tdb_context *tdb, TDB_DATA key); tdb 146 lib/tdb/include/tdb.h int tdb_chainlock_nonblock(struct tdb_context *tdb, TDB_DATA key); tdb 147 lib/tdb/include/tdb.h int tdb_chainunlock(struct tdb_context *tdb, TDB_DATA key); tdb 148 lib/tdb/include/tdb.h int tdb_chainlock_read(struct tdb_context *tdb, TDB_DATA key); tdb 149 lib/tdb/include/tdb.h int tdb_chainunlock_read(struct tdb_context *tdb, TDB_DATA key); tdb 150 lib/tdb/include/tdb.h int tdb_chainlock_mark(struct tdb_context *tdb, TDB_DATA key); tdb 151 lib/tdb/include/tdb.h int tdb_chainlock_unmark(struct tdb_context *tdb, TDB_DATA key); tdb 153 lib/tdb/include/tdb.h void tdb_setalarm_sigptr(struct tdb_context *tdb, volatile sig_atomic_t *sigptr); tdb 156 lib/tdb/include/tdb.h int tdb_wipe_all(struct tdb_context *tdb); tdb 157 lib/tdb/include/tdb.h int tdb_repack(struct tdb_context *tdb); tdb 160 lib/tdb/include/tdb.h void tdb_dump_all(struct tdb_context *tdb); tdb 161 lib/tdb/include/tdb.h int tdb_printfreelist(struct tdb_context *tdb); tdb 162 lib/tdb/include/tdb.h int tdb_validate_freelist(struct tdb_context *tdb, int *pnum_entries); tdb 163 lib/tdb/include/tdb.h int tdb_freelist_size(struct tdb_context *tdb); tdb 46 lib/tdb/pytdb.c static void PyErr_SetTDBError(TDB_CONTEXT *tdb) tdb 49 lib/tdb/pytdb.c Py_BuildValue("(i,s)", tdb_error(tdb), tdb_errorstr(tdb))); tdb 72 lib/tdb/pytdb.c #define PyErr_TDB_ERROR_IS_ERR_RAISE(ret, tdb) \ tdb 74 lib/tdb/pytdb.c PyErr_SetTDBError(tdb); \ tdb 69 lib/tdb/tools/tdbbackup.c static int copy_fn(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void *state) tdb 82 lib/tdb/tools/tdbbackup.c static int test_fn(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void *state) tdb 94 lib/tdb/tools/tdbbackup.c TDB_CONTEXT *tdb; tdb 110 lib/tdb/tools/tdbbackup.c tdb = tdb_open(old_name, 0, 0, O_RDWR, 0); tdb 111 lib/tdb/tools/tdbbackup.c if (!tdb) { tdb 120 lib/tdb/tools/tdbbackup.c hash_size ? hash_size : tdb_hash_size(tdb), tdb 129 lib/tdb/tools/tdbbackup.c if (tdb_transaction_start(tdb) != 0) { tdb 131 lib/tdb/tools/tdbbackup.c tdb_close(tdb); tdb 140 lib/tdb/tools/tdbbackup.c tdb_close(tdb); tdb 150 lib/tdb/tools/tdbbackup.c count1 = tdb_traverse(tdb, copy_fn, (void *)tdb_new); tdb 153 lib/tdb/tools/tdbbackup.c tdb_close(tdb); tdb 161 lib/tdb/tools/tdbbackup.c tdb_close(tdb); tdb 210 lib/tdb/tools/tdbbackup.c TDB_CONTEXT *tdb; tdb 214 lib/tdb/tools/tdbbackup.c tdb = tdb_open(fname, 0, 0, O_RDONLY, 0); tdb 217 lib/tdb/tools/tdbbackup.c if (tdb) { tdb 218 lib/tdb/tools/tdbbackup.c count = tdb_traverse(tdb, test_fn, NULL); tdb 219 lib/tdb/tools/tdbbackup.c tdb_close(tdb); tdb 41 lib/tdb/tools/tdbdump.c static int traverse_fn(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void *state) tdb 56 lib/tdb/tools/tdbdump.c TDB_CONTEXT *tdb; tdb 59 lib/tdb/tools/tdbdump.c tdb = tdb_open(fname, 0, 0, O_RDONLY, 0); tdb 60 lib/tdb/tools/tdbdump.c if (!tdb) { tdb 66 lib/tdb/tools/tdbdump.c tdb_traverse(tdb, traverse_fn, NULL); tdb 70 lib/tdb/tools/tdbdump.c value = tdb_fetch(tdb, key); tdb 38 lib/tdb/tools/tdbtest.c static void tdb_log(struct tdb_context *tdb, int level, const char *format, ...) PRINTF_ATTRIBUTE(3,4); tdb 40 lib/tdb/tools/tdbtest.c static void tdb_log(struct tdb_context *tdb, int level, const char *format, ...) tdb 177 lib/tdb/tools/tdbtest.c static int traverse_fn(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf, void *state) tdb 182 lib/tdb/tools/tdbtest.c tdb_delete(tdb, key); tdb 114 lib/tdb/tools/tdbtool.c static TDB_CONTEXT *tdb; tdb 200 lib/tdb/tools/tdbtool.c if (tdb) tdb_close(tdb); tdb 201 lib/tdb/tools/tdbtool.c tdb = tdb_open(tdbname, 0, TDB_CLEAR_IF_FIRST | (disable_mmap?TDB_NOMMAP:0), tdb 203 lib/tdb/tools/tdbtool.c if (!tdb) { tdb 210 lib/tdb/tools/tdbtool.c if (tdb) tdb_close(tdb); tdb 211 lib/tdb/tools/tdbtool.c tdb = tdb_open(tdbname, 0, disable_mmap?TDB_NOMMAP:0, O_RDWR, 0600); tdb 212 lib/tdb/tools/tdbtool.c if (!tdb) { tdb 231 lib/tdb/tools/tdbtool.c if (tdb_store(tdb, key, dbuf, TDB_INSERT) == -1) { tdb 256 lib/tdb/tools/tdbtool.c print_rec(tdb, key, dbuf, NULL); tdb 258 lib/tdb/tools/tdbtool.c if (tdb_store(tdb, key, dbuf, TDB_REPLACE) == -1) { tdb 275 lib/tdb/tools/tdbtool.c dbuf = tdb_fetch(tdb, key); tdb 281 lib/tdb/tools/tdbtool.c print_rec(tdb, key, dbuf, NULL); tdb 300 lib/tdb/tools/tdbtool.c if (tdb_delete(tdb, key) != 0) { tdb 323 lib/tdb/tools/tdbtool.c dbuf = tdb_fetch(tdb, key); tdb 329 lib/tdb/tools/tdbtool.c print_rec(tdb, key, dbuf, NULL); tdb 385 lib/tdb/tools/tdbtool.c if ((count = tdb_traverse(tdb, traverse_fn, NULL)) == -1) tdb 386 lib/tdb/tools/tdbtool.c printf("Error = %s\n", tdb_errorstr(tdb)); tdb 400 lib/tdb/tools/tdbtool.c tdb_traverse(tdb, traverse_fn, NULL); tdb 517 lib/tdb/tools/tdbtool.c if (!tdb) { tdb 526 lib/tdb/tools/tdbtool.c tdb_traverse(tdb, do_delete_fn, NULL); tdb 530 lib/tdb/tools/tdbtool.c tdb_traverse(tdb, print_rec, NULL); tdb 549 lib/tdb/tools/tdbtool.c tdb_traverse(tdb, print_key, NULL); tdb 552 lib/tdb/tools/tdbtool.c tdb_traverse(tdb, print_hexkey, NULL); tdb 559 lib/tdb/tools/tdbtool.c tdb_dump_all(tdb); tdb 562 lib/tdb/tools/tdbtool.c tdb_printfreelist(tdb); tdb 575 lib/tdb/tools/tdbtool.c first_record(tdb, &iterate_kbuf); tdb 579 lib/tdb/tools/tdbtool.c next_record(tdb, &iterate_kbuf); tdb 582 lib/tdb/tools/tdbtool.c check_db(tdb); tdb 685 lib/tdb/tools/tdbtool.c if (tdb) tdb_close(tdb); tdb 33 lib/tdb/tools/tdbtorture.c static void tdb_log(struct tdb_context *tdb, enum tdb_debug_level level, const char *format, ...) PRINTF_ATTRIBUTE(3,4); tdb 35 lib/tdb/tools/tdbtorture.c static void tdb_log(struct tdb_context *tdb, enum tdb_debug_level level, const char *format, ...) tdb 74 lib/tdb/tools/tdbtorture.c static int cull_traverse(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf, tdb 79 lib/tdb/tools/tdbtorture.c tdb_delete(tdb, key); tdb 194 lib/tdb/tools/tdbtorture.c static int traverse_fn(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf, tdb 197 lib/tdb/tools/tdbtorture.c tdb_delete(tdb, key); tdb 55 lib/util/util_tdb.c int tdb_lock_bystring(struct tdb_context *tdb, const char *keyval) tdb 59 lib/util/util_tdb.c return tdb_chainlock(tdb, key); tdb 66 lib/util/util_tdb.c void tdb_unlock_bystring(struct tdb_context *tdb, const char *keyval) tdb 70 lib/util/util_tdb.c tdb_chainunlock(tdb, key); tdb 77 lib/util/util_tdb.c int tdb_read_lock_bystring(struct tdb_context *tdb, const char *keyval) tdb 81 lib/util/util_tdb.c return tdb_chainlock_read(tdb, key); tdb 88 lib/util/util_tdb.c void tdb_read_unlock_bystring(struct tdb_context *tdb, const char *keyval) tdb 92 lib/util/util_tdb.c tdb_chainunlock_read(tdb, key); tdb 101 lib/util/util_tdb.c int32_t tdb_fetch_int32_byblob(struct tdb_context *tdb, TDB_DATA key) tdb 106 lib/util/util_tdb.c data = tdb_fetch(tdb, key); tdb 122 lib/util/util_tdb.c int32_t tdb_fetch_int32(struct tdb_context *tdb, const char *keystr) tdb 124 lib/util/util_tdb.c return tdb_fetch_int32_byblob(tdb, string_term_tdb_data(keystr)); tdb 132 lib/util/util_tdb.c int tdb_store_int32_byblob(struct tdb_context *tdb, TDB_DATA key, int32_t v) tdb 141 lib/util/util_tdb.c return tdb_store(tdb, key, data, TDB_REPLACE); tdb 149 lib/util/util_tdb.c int tdb_store_int32(struct tdb_context *tdb, const char *keystr, int32_t v) tdb 151 lib/util/util_tdb.c return tdb_store_int32_byblob(tdb, string_term_tdb_data(keystr), v); tdb 159 lib/util/util_tdb.c bool tdb_fetch_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, uint32_t *value) tdb 163 lib/util/util_tdb.c data = tdb_fetch(tdb, key); tdb 179 lib/util/util_tdb.c bool tdb_fetch_uint32(struct tdb_context *tdb, const char *keystr, uint32_t *value) tdb 181 lib/util/util_tdb.c return tdb_fetch_uint32_byblob(tdb, string_term_tdb_data(keystr), value); tdb 189 lib/util/util_tdb.c bool tdb_store_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, uint32_t value) tdb 199 lib/util/util_tdb.c if (tdb_store(tdb, key, data, TDB_REPLACE) == -1) tdb 210 lib/util/util_tdb.c bool tdb_store_uint32(struct tdb_context *tdb, const char *keystr, uint32_t value) tdb 212 lib/util/util_tdb.c return tdb_store_uint32_byblob(tdb, string_term_tdb_data(keystr), value); tdb 219 lib/util/util_tdb.c int tdb_store_bystring(struct tdb_context *tdb, const char *keystr, TDB_DATA data, int flags) tdb 223 lib/util/util_tdb.c return tdb_store(tdb, key, data, flags); tdb 231 lib/util/util_tdb.c TDB_DATA tdb_fetch_bystring(struct tdb_context *tdb, const char *keystr) tdb 235 lib/util/util_tdb.c return tdb_fetch(tdb, key); tdb 242 lib/util/util_tdb.c int tdb_delete_bystring(struct tdb_context *tdb, const char *keystr) tdb 246 lib/util/util_tdb.c return tdb_delete(tdb, key); tdb 253 lib/util/util_tdb.c int32_t tdb_change_int32_atomic(struct tdb_context *tdb, const char *keystr, int32_t *oldval, int32_t change_val) tdb 258 lib/util/util_tdb.c if (tdb_lock_bystring(tdb, keystr) == -1) tdb 261 lib/util/util_tdb.c if ((val = tdb_fetch_int32(tdb, keystr)) == -1) { tdb 263 lib/util/util_tdb.c if (tdb_error(tdb) != TDB_ERR_NOEXIST) { tdb 279 lib/util/util_tdb.c if (tdb_store_int32(tdb, keystr, val) == -1) tdb 286 lib/util/util_tdb.c tdb_unlock_bystring(tdb, keystr); tdb 294 lib/util/util_tdb.c bool tdb_change_uint32_atomic(struct tdb_context *tdb, const char *keystr, uint32_t *oldval, uint32_t change_val) tdb 299 lib/util/util_tdb.c if (tdb_lock_bystring(tdb, keystr) == -1) tdb 302 lib/util/util_tdb.c if (!tdb_fetch_uint32(tdb, keystr, &val)) { tdb 304 lib/util/util_tdb.c if (tdb_error(tdb) != TDB_ERR_NOEXIST) { tdb 321 lib/util/util_tdb.c if (!tdb_store_uint32(tdb, keystr, val)) tdb 328 lib/util/util_tdb.c tdb_unlock_bystring(tdb, keystr); tdb 15 lib/util/util_tdb.h int tdb_lock_bystring(struct tdb_context *tdb, const char *keyval); tdb 20 lib/util/util_tdb.h void tdb_unlock_bystring(struct tdb_context *tdb, const char *keyval); tdb 25 lib/util/util_tdb.h int tdb_read_lock_bystring(struct tdb_context *tdb, const char *keyval); tdb 30 lib/util/util_tdb.h void tdb_read_unlock_bystring(struct tdb_context *tdb, const char *keyval); tdb 36 lib/util/util_tdb.h int32_t tdb_fetch_int32_byblob(struct tdb_context *tdb, TDB_DATA key); tdb 42 lib/util/util_tdb.h int32_t tdb_fetch_int32(struct tdb_context *tdb, const char *keystr); tdb 48 lib/util/util_tdb.h int tdb_store_int32_byblob(struct tdb_context *tdb, TDB_DATA key, int32_t v); tdb 54 lib/util/util_tdb.h int tdb_store_int32(struct tdb_context *tdb, const char *keystr, int32_t v); tdb 60 lib/util/util_tdb.h bool tdb_fetch_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, uint32_t *value); tdb 66 lib/util/util_tdb.h bool tdb_fetch_uint32(struct tdb_context *tdb, const char *keystr, uint32_t *value); tdb 72 lib/util/util_tdb.h bool tdb_store_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, uint32_t value); tdb 78 lib/util/util_tdb.h bool tdb_store_uint32(struct tdb_context *tdb, const char *keystr, uint32_t value); tdb 84 lib/util/util_tdb.h int tdb_store_bystring(struct tdb_context *tdb, const char *keystr, TDB_DATA data, int flags); tdb 90 lib/util/util_tdb.h TDB_DATA tdb_fetch_bystring(struct tdb_context *tdb, const char *keystr); tdb 95 lib/util/util_tdb.h int tdb_delete_bystring(struct tdb_context *tdb, const char *keystr); tdb 100 lib/util/util_tdb.h int32_t tdb_change_int32_atomic(struct tdb_context *tdb, const char *keystr, int32_t *oldval, int32_t change_val); tdb 105 lib/util/util_tdb.h bool tdb_change_uint32_atomic(struct tdb_context *tdb, const char *keystr, uint32_t *oldval, uint32_t change_val); tdb 635 source3/groupdb/mapping_ldb.c static TDB_CONTEXT *tdb; tdb 638 source3/groupdb/mapping_ldb.c tdb = tdb_open_log(tdb_path, 0, TDB_DEFAULT, O_RDWR, 0600); tdb 639 source3/groupdb/mapping_ldb.c if (tdb == NULL) goto failed; tdb 643 source3/groupdb/mapping_ldb.c ret = tdb_traverse(tdb, upgrade_map_record, &status); tdb 646 source3/groupdb/mapping_ldb.c ret = tdb_traverse(tdb, upgrade_alias_record, &status); tdb 649 source3/groupdb/mapping_ldb.c if (tdb) { tdb 650 source3/groupdb/mapping_ldb.c tdb_close(tdb); tdb 651 source3/groupdb/mapping_ldb.c tdb = NULL; tdb 670 source3/groupdb/mapping_ldb.c if (tdb) tdb_close(tdb); tdb 62 source3/groupdb/mapping_tdb.c tdb_lock_bystring(tdb, vstring); tdb 65 source3/groupdb/mapping_tdb.c vers_id = tdb_fetch_int32(tdb, vstring); tdb 72 source3/groupdb/mapping_tdb.c tdb_store_int32(tdb, vstring, DATABASE_VERSION_V2); tdb 79 source3/groupdb/mapping_tdb.c tdb_wipe_all(tdb); tdb 80 source3/groupdb/mapping_tdb.c tdb_store_int32(tdb, vstring, DATABASE_VERSION_V2); tdb 83 source3/groupdb/mapping_tdb.c tdb_unlock_bystring(tdb, vstring); tdb 34 source3/include/eventlog.h TDB_CONTEXT *tdb; tdb 38 source3/include/eventlog.h #define ELOG_TDB_CTX(x) ((x)->tdb) tdb 92 source3/include/printing.h TDB_CONTEXT *tdb; tdb 4940 source3/include/proto.h TDB_DATA get_printer_notify_pid_list(TDB_CONTEXT *tdb, const char *printer_name, bool cleanlist); tdb 5774 source3/include/proto.h int tdb_prs_store(TDB_CONTEXT *tdb, TDB_DATA kbuf, prs_struct *ps); tdb 5775 source3/include/proto.h int tdb_prs_fetch(TDB_CONTEXT *tdb, TDB_DATA kbuf, prs_struct *ps, TALLOC_CTX *mem_ctx); tdb 5833 source3/include/proto.h int elog_tdb_size( TDB_CONTEXT * tdb, int *MaxSize, int *Retention ); tdb 5834 source3/include/proto.h bool prune_eventlog( TDB_CONTEXT * tdb ); tdb 5840 source3/include/proto.h TDB_CONTEXT *tdb, tdb 5843 source3/include/proto.h TDB_CONTEXT *tdb, tdb 5847 source3/include/proto.h TDB_CONTEXT *tdb, tdb 5851 source3/include/proto.h TDB_CONTEXT *tdb, tdb 30 source3/include/util_tdb.h struct tdb_context *tdb; tdb 35 source3/include/util_tdb.h int tdb_chainlock_with_timeout( struct tdb_context *tdb, TDB_DATA key, tdb 37 source3/include/util_tdb.h int tdb_lock_bystring_with_timeout(struct tdb_context *tdb, const char *keyval, tdb 39 source3/include/util_tdb.h int tdb_read_lock_bystring_with_timeout(TDB_CONTEXT *tdb, const char *keyval, tdb 42 source3/include/util_tdb.h int tdb_trans_store_bystring(TDB_CONTEXT *tdb, const char *keystr, tdb 44 source3/include/util_tdb.h int tdb_trans_store(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf, tdb 46 source3/include/util_tdb.h int tdb_trans_delete(struct tdb_context *tdb, TDB_DATA key); tdb 22 source3/intl/lang_tdb.c static TDB_CONTEXT *tdb; tdb 42 source3/intl/lang_tdb.c if (tdb_lockall(tdb) != 0) { tdb 48 source3/intl/lang_tdb.c tdb_wipe_all(tdb); tdb 66 source3/intl/lang_tdb.c tdb_store_bystring(tdb, msgid, data, 0); tdb 72 source3/intl/lang_tdb.c tdb_unlockall(tdb); tdb 112 source3/intl/lang_tdb.c if (tdb) { tdb 113 source3/intl/lang_tdb.c tdb_close(tdb); tdb 114 source3/intl/lang_tdb.c tdb = NULL; tdb 149 source3/intl/lang_tdb.c tdb = tdb_open_log(path, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0644); tdb 150 source3/intl/lang_tdb.c if (!tdb) { tdb 151 source3/intl/lang_tdb.c tdb = tdb_open_log(path, 0, TDB_DEFAULT, O_RDONLY, 0); tdb 152 source3/intl/lang_tdb.c if (!tdb) { tdb 162 source3/intl/lang_tdb.c loadtime = tdb_fetch_int32(tdb, "/LOADTIME/"); tdb 166 source3/intl/lang_tdb.c tdb_store_int32(tdb, "/LOADTIME/", (int)time(NULL)); tdb 191 source3/intl/lang_tdb.c if (!tdb) return msgid; tdb 220 source3/intl/lang_tdb.c data = tdb_fetch_bystring(tdb, msgid_quoted); tdb 236 source3/intl/lang_tdb.c if (!tdb) return; tdb 55 source3/lib/dbwrap_ctdb.c static NTSTATUS tdb_error_to_ntstatus(struct tdb_context *tdb) tdb 58 source3/lib/dbwrap_ctdb.c enum TDB_ERROR tret = tdb_error(tdb); tdb 218 source3/lib/dbwrap_ctdb.c tdb_transaction_cancel(h->ctx->wtdb->tdb); tdb 247 source3/lib/dbwrap_ctdb.c ret = tdb_transaction_start(ctx->wtdb->tdb); tdb 254 source3/lib/dbwrap_ctdb.c data = tdb_fetch(ctx->wtdb->tdb, key); tdb 259 source3/lib/dbwrap_ctdb.c tdb_transaction_cancel(ctx->wtdb->tdb); tdb 324 source3/lib/dbwrap_ctdb.c *data = tdb_fetch(h->ctx->wtdb->tdb, key); tdb 385 source3/lib/dbwrap_ctdb.c ctdb_data = tdb_fetch(ctx->wtdb->tdb, key); tdb 466 source3/lib/dbwrap_ctdb.c rec = tdb_fetch(h->ctx->wtdb->tdb, key); tdb 514 source3/lib/dbwrap_ctdb.c ret = tdb_store(h->ctx->wtdb->tdb, key, rec, TDB_REPLACE); tdb 533 source3/lib/dbwrap_ctdb.c return tdb_error_to_ntstatus(h->ctx->wtdb->tdb); tdb 549 source3/lib/dbwrap_ctdb.c return tdb_error_to_ntstatus(h->ctx->wtdb->tdb); tdb 607 source3/lib/dbwrap_ctdb.c tdb_transaction_cancel(h->ctx->wtdb->tdb); tdb 664 source3/lib/dbwrap_ctdb.c tdb_transaction_cancel(h->ctx->wtdb->tdb); tdb 676 source3/lib/dbwrap_ctdb.c tdb_transaction_cancel(h->ctx->wtdb->tdb); tdb 725 source3/lib/dbwrap_ctdb.c ret = tdb_transaction_commit(h->ctx->wtdb->tdb); tdb 790 source3/lib/dbwrap_ctdb.c ret = tdb_store(crec->ctdb_ctx->wtdb->tdb, rec->key, cdata, TDB_REPLACE); tdb 795 source3/lib/dbwrap_ctdb.c : tdb_error_to_ntstatus(crec->ctdb_ctx->wtdb->tdb); tdb 827 source3/lib/dbwrap_ctdb.c if (tdb_chainunlock(crec->ctdb_ctx->wtdb->tdb, data->key) != 0) { tdb 882 source3/lib/dbwrap_ctdb.c if (tdb_chainlock(ctx->wtdb->tdb, key) != 0) { tdb 892 source3/lib/dbwrap_ctdb.c ctdb_data = tdb_fetch(ctx->wtdb->tdb, key); tdb 907 source3/lib/dbwrap_ctdb.c tdb_chainunlock(ctx->wtdb->tdb, key); tdb 985 source3/lib/dbwrap_ctdb.c ctdb_data = tdb_fetch(ctx->wtdb->tdb, key); tdb 1048 source3/lib/dbwrap_ctdb.c static int traverse_persistent_callback(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, tdb 1080 source3/lib/dbwrap_ctdb.c return tdb_traverse(ctx->wtdb->tdb, traverse_persistent_callback, &state); tdb 1110 source3/lib/dbwrap_ctdb.c static int traverse_persistent_callback_read(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, tdb 1147 source3/lib/dbwrap_ctdb.c return tdb_traverse_read(ctx->wtdb->tdb, traverse_persistent_callback_read, &state); tdb 1158 source3/lib/dbwrap_ctdb.c return tdb_get_seqnum(ctx->wtdb->tdb); tdb 1165 source3/lib/dbwrap_ctdb.c return tdb_get_flags(ctx->wtdb->tdb); tdb 44 source3/lib/dbwrap_tdb.c if (tdb_chainunlock(ctx->wtdb->tdb, data->key) != 0) { tdb 104 source3/lib/dbwrap_tdb.c if (tdb_chainlock(ctx->wtdb->tdb, key) != 0) { tdb 112 source3/lib/dbwrap_tdb.c tdb_parse_record(ctx->wtdb->tdb, key, db_tdb_fetchlock_parse, &state); tdb 119 source3/lib/dbwrap_tdb.c tdb_chainunlock(ctx->wtdb->tdb, key); tdb 169 source3/lib/dbwrap_tdb.c tdb_parse_record(ctx->wtdb->tdb, key, db_tdb_fetch_parse, &state); tdb 187 source3/lib/dbwrap_tdb.c return tdb_parse_record(ctx->wtdb->tdb, key, parser, private_data); tdb 201 source3/lib/dbwrap_tdb.c return (tdb_store(ctx->wtdb->tdb, rec->key, data, flag) == 0) ? tdb 210 source3/lib/dbwrap_tdb.c if (tdb_delete(ctx->wtdb->tdb, rec->key) == 0) { tdb 214 source3/lib/dbwrap_tdb.c if (tdb_error(ctx->wtdb->tdb) == TDB_ERR_NOEXIST) { tdb 227 source3/lib/dbwrap_tdb.c static int db_tdb_traverse_func(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, tdb 254 source3/lib/dbwrap_tdb.c return tdb_traverse(db_ctx->wtdb->tdb, db_tdb_traverse_func, &ctx); tdb 267 source3/lib/dbwrap_tdb.c static int db_tdb_traverse_read_func(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, tdb 294 source3/lib/dbwrap_tdb.c return tdb_traverse_read(db_ctx->wtdb->tdb, db_tdb_traverse_read_func, &ctx); tdb 302 source3/lib/dbwrap_tdb.c return tdb_get_seqnum(db_ctx->wtdb->tdb); tdb 310 source3/lib/dbwrap_tdb.c return tdb_get_flags(db_ctx->wtdb->tdb); tdb 317 source3/lib/dbwrap_tdb.c return tdb_transaction_start(db_ctx->wtdb->tdb); tdb 324 source3/lib/dbwrap_tdb.c return tdb_transaction_commit(db_ctx->wtdb->tdb); tdb 331 source3/lib/dbwrap_tdb.c return tdb_transaction_cancel(db_ctx->wtdb->tdb); tdb 36 source3/lib/eventlog/eventlog.c TDB_CONTEXT *tdb; tdb 41 source3/lib/eventlog/eventlog.c tdb = tdb_open_log( tdbfilename, 0, TDB_DEFAULT, tdb 44 source3/lib/eventlog/eventlog.c if ( !tdb ) { tdb 51 source3/lib/eventlog/eventlog.c tdb_store_int32( tdb, EVT_OLDEST_ENTRY, 1 ); tdb 52 source3/lib/eventlog/eventlog.c tdb_store_int32( tdb, EVT_NEXT_RECORD, 1 ); tdb 53 source3/lib/eventlog/eventlog.c tdb_store_int32( tdb, EVT_MAXSIZE, 0x80000 ); tdb 54 source3/lib/eventlog/eventlog.c tdb_store_int32( tdb, EVT_RETENTION, 0x93A80 ); tdb 56 source3/lib/eventlog/eventlog.c tdb_store_int32( tdb, EVT_VERSION, EVENTLOG_DATABASE_VERSION_V1 ); tdb 58 source3/lib/eventlog/eventlog.c return tdb; tdb 89 source3/lib/eventlog/eventlog.c static int eventlog_tdb_size_fn( TDB_CONTEXT * tdb, TDB_DATA key, TDB_DATA data, tdb 107 source3/lib/eventlog/eventlog.c int elog_tdb_size( TDB_CONTEXT * tdb, int *MaxSize, int *Retention ) tdb 111 source3/lib/eventlog/eventlog.c if ( !tdb ) tdb 116 source3/lib/eventlog/eventlog.c tdb_traverse( tdb, eventlog_tdb_size_fn, &tsize ); tdb 119 source3/lib/eventlog/eventlog.c *MaxSize = tdb_fetch_int32( tdb, EVT_MAXSIZE ); tdb 123 source3/lib/eventlog/eventlog.c *Retention = tdb_fetch_int32( tdb, EVT_RETENTION ); tdb 248 source3/lib/eventlog/eventlog.c bool prune_eventlog( TDB_CONTEXT * tdb ) tdb 252 source3/lib/eventlog/eventlog.c if ( !tdb ) { tdb 257 source3/lib/eventlog/eventlog.c CalcdSize = elog_tdb_size( tdb, &MaxSize, &Retention ); tdb 263 source3/lib/eventlog/eventlog.c return make_way_for_eventlogs( tdb, CalcdSize - MaxSize, tdb 267 source3/lib/eventlog/eventlog.c return make_way_for_eventlogs( tdb, 0, True ); tdb 273 source3/lib/eventlog/eventlog.c static bool can_write_to_eventlog( TDB_CONTEXT * tdb, int32_t needed ) tdb 279 source3/lib/eventlog/eventlog.c if ( !tdb ) tdb 288 source3/lib/eventlog/eventlog.c calcd_size = elog_tdb_size( tdb, &MaxSize, &Retention ); tdb 306 source3/lib/eventlog/eventlog.c return make_way_for_eventlogs( tdb, calcd_size - MaxSize, tdb 310 source3/lib/eventlog/eventlog.c return make_way_for_eventlogs( tdb, calcd_size - MaxSize, False ); tdb 318 source3/lib/eventlog/eventlog.c TDB_CONTEXT *tdb = NULL; tdb 346 source3/lib/eventlog/eventlog.c SMB_ASSERT( ptr->tdb == NULL ); tdb 374 source3/lib/eventlog/eventlog.c tdb = tdb_open_log( tdbpath, 0, TDB_DEFAULT, read_only ? O_RDONLY : O_RDWR , 0 ); tdb 375 source3/lib/eventlog/eventlog.c if ( tdb ) { tdb 376 source3/lib/eventlog/eventlog.c vers_id = tdb_fetch_int32( tdb, EVT_VERSION ); tdb 381 source3/lib/eventlog/eventlog.c tdb_close( tdb ); tdb 382 source3/lib/eventlog/eventlog.c tdb = elog_init_tdb( tdbpath ); tdb 387 source3/lib/eventlog/eventlog.c if ( !tdb ) tdb 388 source3/lib/eventlog/eventlog.c tdb = elog_init_tdb( tdbpath ); tdb 392 source3/lib/eventlog/eventlog.c if ( tdb ) { tdb 397 source3/lib/eventlog/eventlog.c ptr->tdb = tdb; tdb 403 source3/lib/eventlog/eventlog.c tdb_close( tdb ); tdb 408 source3/lib/eventlog/eventlog.c tdb_node->tdb = tdb; tdb 423 source3/lib/eventlog/eventlog.c TDB_CONTEXT *tdb; tdb 433 source3/lib/eventlog/eventlog.c tdb = etdb->tdb; tdb 436 source3/lib/eventlog/eventlog.c return tdb_close( tdb ); tdb 440 source3/lib/eventlog/eventlog.c tdb = etdb->tdb; tdb 441 source3/lib/eventlog/eventlog.c etdb->tdb = NULL; tdb 442 source3/lib/eventlog/eventlog.c return tdb_close( tdb ); tdb 650 source3/lib/eventlog/eventlog.c TDB_CONTEXT *tdb, tdb 664 source3/lib/eventlog/eventlog.c data = tdb_fetch(tdb, key); tdb 705 source3/lib/eventlog/eventlog.c TDB_CONTEXT *tdb, tdb 717 source3/lib/eventlog/eventlog.c t = evlog_pull_record_tdb(r, tdb, record_number); tdb 745 source3/lib/eventlog/eventlog.c TDB_CONTEXT *tdb, tdb 758 source3/lib/eventlog/eventlog.c if (!can_write_to_eventlog(tdb, r->size)) { tdb 765 source3/lib/eventlog/eventlog.c ret = tdb_lock_bystring_with_timeout(tdb, EVT_NEXT_RECORD, 1); tdb 771 source3/lib/eventlog/eventlog.c r->record_number = tdb_fetch_int32(tdb, EVT_NEXT_RECORD); tdb 776 source3/lib/eventlog/eventlog.c tdb_unlock_bystring(tdb, EVT_NEXT_RECORD); tdb 788 source3/lib/eventlog/eventlog.c ret = tdb_store(tdb, kbuf, ebuf, 0); tdb 790 source3/lib/eventlog/eventlog.c tdb_unlock_bystring(tdb, EVT_NEXT_RECORD); tdb 794 source3/lib/eventlog/eventlog.c ret = tdb_store_int32(tdb, EVT_NEXT_RECORD, r->record_number + 1); tdb 796 source3/lib/eventlog/eventlog.c tdb_unlock_bystring(tdb, EVT_NEXT_RECORD); tdb 799 source3/lib/eventlog/eventlog.c tdb_unlock_bystring(tdb, EVT_NEXT_RECORD); tdb 812 source3/lib/eventlog/eventlog.c TDB_CONTEXT *tdb, tdb 830 source3/lib/eventlog/eventlog.c status = evlog_push_record_tdb(mem_ctx, tdb, t, record_number); tdb 985 source3/lib/eventlog/eventlog.c r = evlog_pull_record_tdb(mem_ctx, etdb->tdb, count); tdb 1005 source3/lib/eventlog/eventlog.c evt.hdr.MaxSize = tdb_fetch_int32(etdb->tdb, EVT_MAXSIZE); tdb 1007 source3/lib/eventlog/eventlog.c evt.hdr.Retention = tdb_fetch_int32(etdb->tdb, EVT_RETENTION); tdb 406 source3/lib/gencache.c static int gencache_iterate_fn(struct tdb_context *tdb, TDB_DATA key, tdb 329 source3/lib/ldb/ldb_tdb/ldb_cache.c tdb_get_seqnum(ltdb->tdb) == ltdb->tdb_seqnum) { tdb 366 source3/lib/ldb/ldb_tdb/ldb_cache.c ltdb->tdb_seqnum = tdb_get_seqnum(ltdb->tdb); tdb 1084 source3/lib/ldb/ldb_tdb/ldb_index.c static int delete_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *state) tdb 1088 source3/lib/ldb/ldb_tdb/ldb_index.c return tdb_delete(tdb, key); tdb 1096 source3/lib/ldb/ldb_tdb/ldb_index.c static int re_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *state) tdb 1131 source3/lib/ldb/ldb_tdb/ldb_index.c tdb_delete(tdb, key); tdb 1132 source3/lib/ldb/ldb_tdb/ldb_index.c tdb_store(tdb, key2, data, 0); tdb 1166 source3/lib/ldb/ldb_tdb/ldb_index.c ret = tdb_traverse(ltdb->tdb, delete_index, NULL); tdb 1172 source3/lib/ldb/ldb_tdb/ldb_index.c ret = tdb_traverse(ltdb->tdb, re_index, module); tdb 226 source3/lib/ldb/ldb_tdb/ldb_search.c tdb_data = tdb_fetch(ltdb->tdb, tdb_key); tdb 258 source3/lib/ldb/ldb_tdb/ldb_search.c return tdb_lockall_read(ltdb->tdb); tdb 268 source3/lib/ldb/ldb_tdb/ldb_search.c return tdb_unlockall_read(ltdb->tdb); tdb 364 source3/lib/ldb/ldb_tdb/ldb_search.c static int search_func(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *state) tdb 448 source3/lib/ldb/ldb_tdb/ldb_search.c ret = tdb_traverse_read(ltdb->tdb, search_func, handle); tdb 237 source3/lib/ldb/ldb_tdb/ldb_tdb.c ret = tdb_store(ltdb->tdb, tdb_key, tdb_data, flgs); tdb 239 source3/lib/ldb/ldb_tdb/ldb_tdb.c ret = ltdb_err_map(tdb_error(ltdb->tdb)); tdb 245 source3/lib/ldb/ldb_tdb/ldb_tdb.c tdb_delete(ltdb->tdb, tdb_key); tdb 345 source3/lib/ldb/ldb_tdb/ldb_tdb.c ret = tdb_delete(ltdb->tdb, tdb_key); tdb 349 source3/lib/ldb/ldb_tdb/ldb_tdb.c ret = ltdb_err_map(tdb_error(ltdb->tdb)); tdb 606 source3/lib/ldb/ldb_tdb/ldb_tdb.c tdb_data = tdb_fetch(ltdb->tdb, tdb_key); tdb 609 source3/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 882 source3/lib/ldb/ldb_tdb/ldb_tdb.c if (tdb_transaction_start(ltdb->tdb) != 0) { tdb 883 source3/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 894 source3/lib/ldb/ldb_tdb/ldb_tdb.c if (tdb_transaction_commit(ltdb->tdb) != 0) { tdb 895 source3/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 906 source3/lib/ldb/ldb_tdb/ldb_tdb.c if (tdb_transaction_cancel(ltdb->tdb) != 0) { tdb 907 source3/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 1049 source3/lib/ldb/ldb_tdb/ldb_tdb.c ltdb->tdb = ltdb_wrap_open(ltdb, path, 10000, tdb 1052 source3/lib/ldb/ldb_tdb/ldb_tdb.c if (!ltdb->tdb) { tdb 17 source3/lib/ldb/ldb_tdb/ldb_tdb.h TDB_CONTEXT *tdb; tdb 37 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c struct tdb_context *tdb; tdb 47 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c tdb_close(w->tdb); tdb 60 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c static void ltdb_log_fn(struct tdb_context *tdb, enum tdb_debug_level level, const char *fmt, ...) PRINTF_ATTRIBUTE(3, 4); tdb 61 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c static void ltdb_log_fn(struct tdb_context *tdb, enum tdb_debug_level level, const char *fmt, ...) tdb 64 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c const char *name = tdb_name(tdb); tdb 65 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c struct ldb_context *ldb = talloc_get_type(tdb_get_logging_private(tdb), struct ldb_context); tdb 118 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c return w->tdb; tdb 128 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c w->tdb = tdb_open_ex(path, hash_size, tdb_flags, open_flags, mode, &log_ctx, NULL); tdb 129 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c if (w->tdb == NULL) { tdb 134 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c if (fstat(tdb_fd(w->tdb), &st) != 0) { tdb 135 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c tdb_close(w->tdb); tdb 152 source3/lib/ldb/ldb_tdb/ldb_tdb_wrap.c return w->tdb; tdb 51 source3/lib/messages_local.c struct tdb_wrap *tdb; tdb 105 source3/lib/messages_local.c ctx->tdb = tdb_wrap_open(ctx, lock_path("messages.tdb"), tdb 109 source3/lib/messages_local.c if (!ctx->tdb) { tdb 133 source3/lib/messages_local.c tdb_set_max_dead(ctx->tdb->tdb, 5); tdb 320 source3/lib/messages_local.c struct tdb_wrap *tdb = ctx->tdb; tdb 337 source3/lib/messages_local.c if (tdb_chainlock(tdb->tdb, key) == -1) { tdb 342 source3/lib/messages_local.c status = messaging_tdb_fetch(tdb->tdb, key, talloc_tos(), &msg_array); tdb 372 source3/lib/messages_local.c status = messaging_tdb_store(tdb->tdb, key, msg_array); tdb 383 source3/lib/messages_local.c tdb_delete(tdb->tdb, message_key_pid(talloc_tos(), pid)); tdb 387 source3/lib/messages_local.c tdb_chainunlock(tdb->tdb, key); tdb 438 source3/lib/messages_local.c struct tdb_wrap *tdb = ctx->tdb; tdb 449 source3/lib/messages_local.c status = retrieve_all_messages(tdb->tdb, NULL, &msg_array); tdb 32 source3/lib/server_mutex.c struct tdb_wrap *tdb; tdb 38 source3/lib/server_mutex.c tdb_unlock_bystring(mutex->tdb->tdb, mutex->name); tdb 60 source3/lib/server_mutex.c result->tdb = tdb_wrap_open(result, lock_path("mutex.tdb"), 0, tdb 62 source3/lib/server_mutex.c if (result->tdb == NULL) { tdb 69 source3/lib/server_mutex.c if (tdb_lock_bystring_with_timeout(result->tdb->tdb, name, tdb 28 source3/lib/tdb_validate.c static int tdb_validate_child(struct tdb_context *tdb, tdb 41 source3/lib/tdb_validate.c if (!tdb) { tdb 48 source3/lib/tdb_validate.c if (tdb_validate_freelist(tdb, &num_entries) == -1) { tdb 55 source3/lib/tdb_validate.c tdb_name(tdb), num_entries)); tdb 58 source3/lib/tdb_validate.c num_entries = tdb_traverse(tdb, validate_fn, (void *)&v_status); tdb 68 source3/lib/tdb_validate.c tdb_name(tdb), num_entries)); tdb 87 source3/lib/tdb_validate.c int tdb_validate(struct tdb_context *tdb, tdb_validate_data_func validate_fn) tdb 94 source3/lib/tdb_validate.c if (tdb == NULL) { tdb 99 source3/lib/tdb_validate.c DEBUG(5, ("tdb_validate called for tdb '%s'\n", tdb_name(tdb))); tdb 112 source3/lib/tdb_validate.c exit(tdb_validate_child(tdb, validate_fn)); tdb 166 source3/lib/tdb_validate.c tdb_name(tdb))); tdb 179 source3/lib/tdb_validate.c TDB_CONTEXT *tdb = NULL; tdb 184 source3/lib/tdb_validate.c tdb = tdb_open_log(tdb_path, 0, TDB_DEFAULT, O_RDONLY, 0); tdb 185 source3/lib/tdb_validate.c if (!tdb) { tdb 190 source3/lib/tdb_validate.c ret = tdb_validate(tdb, validate_fn); tdb 191 source3/lib/tdb_validate.c tdb_close(tdb); tdb 207 source3/lib/tdb_validate.c static int traverse_copy_fn(struct tdb_context *tdb, TDB_DATA key, tdb 236 source3/lib/tdb_validate.c static int tdb_verify_basic(struct tdb_context *tdb) tdb 238 source3/lib/tdb_validate.c return tdb_traverse(tdb, NULL, NULL); tdb 50 source3/lib/tdb_validate.h int tdb_validate(struct tdb_context *tdb, tdb 46 source3/lib/util_tdb.c static int tdb_chainlock_with_timeout_internal( TDB_CONTEXT *tdb, TDB_DATA key, unsigned int timeout, int rw_type) tdb 54 source3/lib/util_tdb.c tdb_setalarm_sigptr(tdb, &gotalarm); tdb 59 source3/lib/util_tdb.c ret = tdb_chainlock_read(tdb, key); tdb 61 source3/lib/util_tdb.c ret = tdb_chainlock(tdb, key); tdb 65 source3/lib/util_tdb.c tdb_setalarm_sigptr(tdb, NULL); tdb 69 source3/lib/util_tdb.c timeout, key.dptr, tdb_name(tdb))); tdb 85 source3/lib/util_tdb.c int tdb_chainlock_with_timeout( TDB_CONTEXT *tdb, TDB_DATA key, unsigned int timeout) tdb 87 source3/lib/util_tdb.c return tdb_chainlock_with_timeout_internal(tdb, key, timeout, F_WRLCK); tdb 90 source3/lib/util_tdb.c int tdb_lock_bystring_with_timeout(TDB_CONTEXT *tdb, const char *keyval, tdb 95 source3/lib/util_tdb.c return tdb_chainlock_with_timeout(tdb, key, timeout); tdb 102 source3/lib/util_tdb.c int tdb_read_lock_bystring_with_timeout(TDB_CONTEXT *tdb, const char *keyval, unsigned int timeout) tdb 106 source3/lib/util_tdb.c return tdb_chainlock_with_timeout_internal(tdb, key, timeout, F_RDLCK); tdb 112 source3/lib/util_tdb.c int tdb_trans_store_bystring(TDB_CONTEXT *tdb, const char *keystr, tdb 117 source3/lib/util_tdb.c return tdb_trans_store(tdb, key, data, flags); tdb 372 source3/lib/util_tdb.c static void tdb_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, const char *format, ...) tdb 385 source3/lib/util_tdb.c DEBUG((int)level, ("tdb(%s): %s", tdb_name(tdb) ? tdb_name(tdb) : "unnamed", ptr)); tdb 397 source3/lib/util_tdb.c TDB_CONTEXT *tdb; tdb 417 source3/lib/util_tdb.c tdb = tdb_open_ex(name, hash_size, tdb_flags, tdb 419 source3/lib/util_tdb.c if (!tdb) tdb 422 source3/lib/util_tdb.c return tdb; tdb 430 source3/lib/util_tdb.c int tdb_trans_store(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf, tdb 435 source3/lib/util_tdb.c if ((res = tdb_transaction_start(tdb)) != 0) { tdb 440 source3/lib/util_tdb.c if ((res = tdb_store(tdb, key, dbuf, flag)) != 0) { tdb 442 source3/lib/util_tdb.c if (tdb_transaction_cancel(tdb) != 0) { tdb 448 source3/lib/util_tdb.c if ((res = tdb_transaction_commit(tdb)) != 0) { tdb 460 source3/lib/util_tdb.c int tdb_trans_delete(struct tdb_context *tdb, TDB_DATA key) tdb 464 source3/lib/util_tdb.c if ((res = tdb_transaction_start(tdb)) != 0) { tdb 469 source3/lib/util_tdb.c if ((res = tdb_delete(tdb, key)) != 0) { tdb 471 source3/lib/util_tdb.c if (tdb_transaction_cancel(tdb) != 0) { tdb 477 source3/lib/util_tdb.c if ((res = tdb_transaction_commit(tdb)) != 0) { tdb 487 source3/lib/util_tdb.c static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, tdb 490 source3/lib/util_tdb.c static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, tdb 520 source3/lib/util_tdb.c const char *name = tdb_name(tdb); tdb 531 source3/lib/util_tdb.c tdb_close(w->tdb); tdb 583 source3/lib/util_tdb.c w->tdb = tdb_open_ex(name, hash_size, tdb_flags, tdb 585 source3/lib/util_tdb.c if (w->tdb == NULL) { tdb 333 source3/nmbd/nmbd_winsserver.c static int traverse_fn(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, void *state) tdb 1748 source3/nmbd/nmbd_winsserver.c static int fetch_1b_traverse_fn(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, void *state) tdb 2137 source3/nmbd/nmbd_winsserver.c static int wins_processing_traverse_fn(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, void *state) tdb 2311 source3/nmbd/nmbd_winsserver.c static int wins_writedb_traverse_fn(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, void *state) tdb 306 source3/passdb/pdb_tdb.c TDB_CONTEXT *tdb; tdb 315 source3/passdb/pdb_tdb.c tdb = tdb_open_log(state_path("winbindd_idmap.tdb"), 0, tdb 318 source3/passdb/pdb_tdb.c if (tdb) { tdb 319 source3/passdb/pdb_tdb.c ok = tdb_fetch_uint32(tdb, "RID_COUNTER", &rid); tdb 323 source3/passdb/pdb_tdb.c tdb_close(tdb); tdb 547 source3/printing/notify.c TDB_CONTEXT *tdb = NULL; tdb 559 source3/printing/notify.c tdb = pdb->tdb; tdb 561 source3/printing/notify.c if (tdb_read_lock_bystring_with_timeout(tdb, NOTIFY_PID_LIST_KEY, 10) == -1) { tdb 569 source3/printing/notify.c data = get_printer_notify_pid_list( tdb, printername, True ); tdb 597 source3/printing/notify.c tdb_read_unlock_bystring(tdb, NOTIFY_PID_LIST_KEY); tdb 199 source3/printing/printing.c if (tdb_lock_bystring(pdb->tdb, sversion) == -1) { tdb 204 source3/printing/printing.c if (tdb_fetch_int32(pdb->tdb, sversion) != PRINT_DATABASE_VERSION) { tdb 205 source3/printing/printing.c tdb_wipe_all(pdb->tdb); tdb 206 source3/printing/printing.c tdb_store_int32(pdb->tdb, sversion, PRINT_DATABASE_VERSION); tdb 208 source3/printing/printing.c tdb_unlock_bystring(pdb->tdb, sversion); tdb 346 source3/printing/printing.c ret = tdb_fetch(pdb->tdb, print_key(jobid, &tmp)); tdb 427 source3/printing/printing.c tdb_traverse(pdb->tdb, unixjob_traverse_fn, &state); tdb 534 source3/printing/printing.c old_data = tdb_fetch(pdb->tdb, print_key(jobid, &tmp)); tdb 575 source3/printing/printing.c ret = (tdb_store(pdb->tdb, print_key(jobid, &tmp), new_data, tdb 640 source3/printing/printing.c tdb_delete(pdb->tdb, print_key(jobid, &tmp)); tdb 858 source3/printing/printing.c tdb_store_int32(pdb->tdb, key, -1); tdb 878 source3/printing/printing.c data = tdb_fetch(pdb->tdb, key); tdb 920 source3/printing/printing.c tdb_delete(pdb->tdb, key); tdb 929 source3/printing/printing.c tdb_store(pdb->tdb, key, data, TDB_REPLACE); tdb 1013 source3/printing/printing.c tdb_store(pdb->tdb, string_tdb_data("INFO/linear_queue_array"), data, tdb 1025 source3/printing/printing.c data = tdb_fetch(pdb->tdb, string_tdb_data("INFO/jobs_changed")); tdb 1063 source3/printing/printing.c last_qscan_time = (time_t)tdb_fetch_int32(pdb->tdb, key); tdb 1095 source3/printing/printing.c && tdb_fetch_uint32( pdb->tdb, key, &u ) tdb 1146 source3/printing/printing.c tdb_store_int32(pdb->tdb, cachestr, (int)time(NULL)); tdb 1221 source3/printing/printing.c tdb_traverse(pdb->tdb, traverse_fn_delete, (void *)&tstruct); tdb 1231 source3/printing/printing.c tdb_store_int32(pdb->tdb, "INFO/total_jobs", tstruct.total_jobs); tdb 1245 source3/printing/printing.c tdb_store(pdb->tdb, key, data, TDB_REPLACE); tdb 1253 source3/printing/printing.c tdb_store_int32(pdb->tdb, keystr, (int32)time(NULL)); tdb 1259 source3/printing/printing.c if ( !tdb_store_uint32( pdb->tdb, keystr, 0 ) ) { tdb 1309 source3/printing/printing.c if (tdb_lock_bystring_with_timeout(pdb->tdb, keystr, 10) == -1) { tdb 1325 source3/printing/printing.c tdb_unlock_bystring(pdb->tdb, keystr); tdb 1342 source3/printing/printing.c tdb_unlock_bystring(pdb->tdb, keystr); tdb 1591 source3/printing/printing.c if ( !tdb_store_uint32( pdb->tdb, key, time(NULL) ) ) { tdb 1620 source3/printing/printing.c TDB_CONTEXT *tdb = NULL; tdb 1648 source3/printing/printing.c tdb = pdb->tdb; tdb 1651 source3/printing/printing.c if (tdb_lock_bystring_with_timeout(tdb, NOTIFY_PID_LIST_KEY, 10) == -1) { tdb 1659 source3/printing/printing.c data = get_printer_notify_pid_list( tdb, printername, True ); tdb 1685 source3/printing/printing.c if (tdb_store_bystring(tdb, NOTIFY_PID_LIST_KEY, data, TDB_REPLACE) == -1) { tdb 1695 source3/printing/printing.c tdb_unlock_bystring(tdb, NOTIFY_PID_LIST_KEY); tdb 1711 source3/printing/printing.c TDB_CONTEXT *tdb = NULL; tdb 1738 source3/printing/printing.c tdb = pdb->tdb; tdb 1741 source3/printing/printing.c if (tdb_lock_bystring_with_timeout(tdb, NOTIFY_PID_LIST_KEY, 10) == -1) { tdb 1749 source3/printing/printing.c data = get_printer_notify_pid_list( tdb, printername, True ); tdb 1775 source3/printing/printing.c if (tdb_store_bystring(tdb, NOTIFY_PID_LIST_KEY, data, TDB_REPLACE) == -1) { tdb 1785 source3/printing/printing.c tdb_unlock_bystring(tdb, NOTIFY_PID_LIST_KEY); tdb 1804 source3/printing/printing.c ret = tdb_exists(pdb->tdb, print_key(jobid, &tmp)); tdb 1901 source3/printing/printing.c if (tdb_chainlock_with_timeout(pdb->tdb, key, 5) == -1) tdb 1906 source3/printing/printing.c data = tdb_fetch(pdb->tdb, key); tdb 1920 source3/printing/printing.c if (tdb_store(pdb->tdb, key, data, TDB_REPLACE) == -1) tdb 1930 source3/printing/printing.c tdb_chainunlock(pdb->tdb, key); tdb 1993 source3/printing/printing.c tdb_change_int32_atomic(pdb->tdb, "INFO/total_jobs", &njobs, -1); tdb 2255 source3/printing/printing.c data = tdb_fetch(pdb->tdb, string_tdb_data(keystr)); tdb 2264 source3/printing/printing.c len = tdb_fetch_int32(pdb->tdb, "INFO/total_jobs"); tdb 2308 source3/printing/printing.c if (tdb_lock_bystring_with_timeout(pdb->tdb, "INFO/nextjob", 20) == -1) { tdb 2313 source3/printing/printing.c if (!tdb_fetch_uint32(pdb->tdb, "INFO/nextjob", &jobid)) { tdb 2314 source3/printing/printing.c if (tdb_error(pdb->tdb) != TDB_ERR_NOEXIST) { tdb 2317 source3/printing/printing.c tdb_unlock_bystring(pdb->tdb, "INFO/nextjob"); tdb 2328 source3/printing/printing.c if (tdb_store_int32(pdb->tdb, "INFO/nextjob", jobid)==-1) { tdb 2330 source3/printing/printing.c tdb_unlock_bystring(pdb->tdb, "INFO/nextjob"); tdb 2335 source3/printing/printing.c tdb_unlock_bystring(pdb->tdb, "INFO/nextjob"); tdb 2357 source3/printing/printing.c if (tdb_store(pdb->tdb, print_key(jobid, &tmp), dum, tdb 2384 source3/printing/printing.c return (tdb_append(pdb->tdb, string_tdb_data("INFO/jobs_changed"), tdb 2507 source3/printing/printing.c tdb_change_int32_atomic(pdb->tdb, "INFO/total_jobs", &njobs, 1); tdb 2650 source3/printing/printing.c data = tdb_fetch(pdb->tdb, string_tdb_data("INFO/linear_queue_array")); tdb 2656 source3/printing/printing.c cgdata = tdb_fetch(pdb->tdb, string_tdb_data("INFO/jobs_changed")); tdb 2779 source3/printing/printing.c data = tdb_fetch(pdb->tdb, key); tdb 45 source3/printing/printing_db.c if (p->tdb && strequal(p->printer_name, printername)) { tdb 64 source3/printing/printing_db.c if (p->tdb) { tdb 65 source3/printing/printing_db.c if (tdb_close(print_db_head->tdb)) { tdb 71 source3/printing/printing_db.c p->tdb = NULL; tdb 106 source3/printing/printing_db.c p->tdb = tdb_open_log(printdb_path, 5000, TDB_DEFAULT, O_RDWR|O_CREAT, tdb 112 source3/printing/printing_db.c if (!p->tdb) { tdb 147 source3/printing/printing_db.c if (p->tdb) tdb 148 source3/printing/printing_db.c tdb_close(p->tdb); tdb 161 source3/printing/printing_db.c TDB_DATA get_printer_notify_pid_list(TDB_CONTEXT *tdb, const char *printer_name, bool cleanlist) tdb 168 source3/printing/printing_db.c data = tdb_fetch_bystring( tdb, NOTIFY_PID_LIST_KEY ); tdb 177 source3/printing/printing_db.c tdb_delete_bystring(tdb, NOTIFY_PID_LIST_KEY ); tdb 26 source3/printing/tests/vlp.c static TDB_CONTEXT *tdb; tdb 55 source3/printing/tests/vlp.c data = tdb_fetch_bystring(tdb, keystr); tdb 73 source3/printing/tests/vlp.c tdb_store_bystring(tdb, keystr, data, TDB_REPLACE); tdb 85 source3/printing/tests/vlp.c tdb_lock_bystring(tdb, keystr); tdb 87 source3/printing/tests/vlp.c jobnum = tdb_fetch_int32(tdb, keystr); tdb 96 source3/printing/tests/vlp.c tdb_store_int32(tdb, keystr, jobnum); tdb 98 source3/printing/tests/vlp.c tdb_unlock_bystring(tdb, keystr); tdb 109 source3/printing/tests/vlp.c result = tdb_store_int32(tdb, keystr, status); tdb 122 source3/printing/tests/vlp.c if (!tdb_exists(tdb, data)) { tdb 127 source3/printing/tests/vlp.c return tdb_fetch_int32(tdb, keystr); tdb 252 source3/printing/tests/vlp.c value = tdb_fetch_bystring(tdb, keystr); tdb 267 source3/printing/tests/vlp.c tdb_store_bystring(tdb, keystr, queue, TDB_REPLACE); tdb 277 source3/printing/tests/vlp.c tdb_store_bystring(tdb, keystr, queue, TDB_REPLACE); tdb 395 source3/printing/tests/vlp.c if (!(tdb = tdb_open(printdb_path, 0, 0, O_RDWR | O_CREAT, tdb 155 source3/registry/reg_perfcount.c static uint32 _reg_perfcount_multi_sz_from_tdb(TDB_CONTEXT *tdb, tdb 169 source3/registry/reg_perfcount.c dbuf = tdb_fetch(tdb, kbuf); tdb 175 source3/registry/reg_perfcount.c temp, tdb_name(tdb))); tdb 824 source3/registry/reg_perfcount.c TDB_CONTEXT *tdb, tdb 833 source3/registry/reg_perfcount.c data = tdb_fetch(tdb, key); tdb 1336 source3/rpc_parse/parse_prs.c int tdb_prs_store(TDB_CONTEXT *tdb, TDB_DATA kbuf, prs_struct *ps) tdb 1341 source3/rpc_parse/parse_prs.c return tdb_trans_store(tdb, kbuf, dbuf, TDB_REPLACE); tdb 1345 source3/rpc_parse/parse_prs.c int tdb_prs_fetch(TDB_CONTEXT *tdb, TDB_DATA kbuf, prs_struct *ps, TALLOC_CTX *mem_ctx) tdb 1351 source3/rpc_parse/parse_prs.c dbuf = tdb_fetch(tdb, kbuf); tdb 24 source3/torture/mangle_test.c static TDB_CONTEXT *tdb; tdb 86 source3/torture/mangle_test.c data = tdb_fetch_bystring(tdb, shortname); tdb 102 source3/torture/mangle_test.c tdb_store_bystring(tdb, shortname, namedata, TDB_REPLACE); tdb 174 source3/torture/mangle_test.c tdb = tdb_open(NULL, 100000, TDB_INTERNAL, 0, 0); tdb 175 source3/torture/mangle_test.c if (!tdb) { tdb 194 source3/utils/eventlogadm.c r = evlog_pull_record_tdb(mem_ctx, etdb->tdb, count); tdb 33 source3/utils/net_idmap.c static int net_idmap_dump_one_entry(TDB_CONTEXT *tdb, tdb 863 source3/utils/smbcontrol.c TDB_CONTEXT *tdb; tdb 873 source3/utils/smbcontrol.c tdb = tdb_open_log(cache_path("winbindd_cache.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600); tdb 874 source3/utils/smbcontrol.c if (!tdb) { tdb 880 source3/utils/smbcontrol.c tdb_delete_bystring(tdb, "WINBINDD_OFFLINE"); tdb 881 source3/utils/smbcontrol.c tdb_close(tdb); tdb 890 source3/utils/smbcontrol.c TDB_CONTEXT *tdb; tdb 903 source3/utils/smbcontrol.c tdb = tdb_open_log(cache_path("winbindd_cache.tdb"), tdb 907 source3/utils/smbcontrol.c if (!tdb) { tdb 930 source3/utils/smbcontrol.c tdb_store_bystring(tdb, "WINBINDD_OFFLINE", d, TDB_INSERT); tdb 936 source3/utils/smbcontrol.c d = tdb_fetch_bystring( tdb, "WINBINDD_OFFLINE" ); tdb 947 source3/utils/smbcontrol.c tdb_close(tdb); tdb 87 source3/winbindd/winbindd_cache.c TDB_CONTEXT *tdb; tdb 114 source3/winbindd/winbindd_cache.c if (wcache == NULL || wcache->tdb == NULL) { tdb 119 source3/winbindd/winbindd_cache.c if (fstat(tdb_fd(wcache->tdb), &st) == -1) { tdb 379 source3/winbindd/winbindd_cache.c if (!wcache->tdb) tdb 396 source3/winbindd/winbindd_cache.c if (!wcache->tdb) { tdb 403 source3/winbindd/winbindd_cache.c data = tdb_fetch_bystring( wcache->tdb, key ); tdb 437 source3/winbindd/winbindd_cache.c if (!wcache->tdb) { tdb 449 source3/winbindd/winbindd_cache.c if ( tdb_store_bystring( wcache->tdb, key_str, data, TDB_REPLACE) == -1 ) { tdb 595 source3/winbindd/winbindd_cache.c data = tdb_fetch(wcache->tdb, key); tdb 680 source3/winbindd/winbindd_cache.c tdb_delete(wcache->tdb, key); tdb 812 source3/winbindd/winbindd_cache.c if (!wcache->tdb) tdb 848 source3/winbindd/winbindd_cache.c tdb_store(wcache->tdb, key, data, TDB_REPLACE); tdb 1027 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 1102 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 1177 source3/winbindd/winbindd_cache.c if (!cache->tdb) { tdb 1191 source3/winbindd/winbindd_cache.c data = tdb_fetch(cache->tdb, string_tdb_data(key_str)); tdb 1216 source3/winbindd/winbindd_cache.c if (!cache->tdb) { tdb 1339 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 1456 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 1530 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 1617 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 1690 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 1760 source3/winbindd/winbindd_cache.c if (!cache->tdb) { tdb 1907 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 1980 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 2069 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 2161 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 2257 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 2361 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 2410 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 2488 source3/winbindd/winbindd_cache.c if (!cache->tdb) { tdb 2498 source3/winbindd/winbindd_cache.c tdb_delete(cache->tdb, string_tdb_data(key_str)); tdb 2503 source3/winbindd/winbindd_cache.c tdb_delete(cache->tdb, string_tdb_data(key_str)); tdb 2519 source3/winbindd/winbindd_cache.c if (cache->tdb) { tdb 2520 source3/winbindd/winbindd_cache.c tdb_traverse(cache->tdb, traverse_fn, NULL); tdb 2546 source3/winbindd/winbindd_cache.c if (cache->tdb) { tdb 2547 source3/winbindd/winbindd_cache.c tdb_traverse(cache->tdb, traverse_fn, NULL); tdb 2563 source3/winbindd/winbindd_cache.c if (wcache->tdb != NULL) tdb 2567 source3/winbindd/winbindd_cache.c wcache->tdb = tdb_open_log(cache_path("winbindd_cache.tdb"), tdb 2572 source3/winbindd/winbindd_cache.c if (wcache->tdb == NULL) { tdb 2597 source3/winbindd/winbindd_cache.c if (tdb_fetch_uint32(wcache->tdb, WINBINDD_CACHE_VERSION_KEYSTR, &vers) && tdb 2607 source3/winbindd/winbindd_cache.c tdb_close(wcache->tdb); tdb 2608 source3/winbindd/winbindd_cache.c wcache->tdb = NULL; tdb 2623 source3/winbindd/winbindd_cache.c if (!tdb_store_uint32(wcache->tdb, WINBINDD_CACHE_VERSION_KEYSTR, WINBINDD_CACHE_VERSION)) { tdb 2625 source3/winbindd/winbindd_cache.c tdb_errorstr(wcache->tdb) )); tdb 2630 source3/winbindd/winbindd_cache.c tdb_close(wcache->tdb); tdb 2631 source3/winbindd/winbindd_cache.c wcache->tdb = NULL; tdb 2640 source3/winbindd/winbindd_cache.c if (wcache->tdb) { tdb 2641 source3/winbindd/winbindd_cache.c tdb_close(wcache->tdb); tdb 2642 source3/winbindd/winbindd_cache.c wcache->tdb = NULL; tdb 2657 source3/winbindd/winbindd_cache.c if (tdb_store(wcache->tdb, string_tdb_data(key_str), tdb 2671 source3/winbindd/winbindd_cache.c if (tdb_store(wcache->tdb, string_tdb_data(key_str), tdb 2681 source3/winbindd/winbindd_cache.c tdb_delete(wcache->tdb, string_tdb_data(key_str)); tdb 2697 source3/winbindd/winbindd_cache.c data = tdb_fetch(wcache->tdb, string_tdb_data(key_str)); tdb 2719 source3/winbindd/winbindd_cache.c data = tdb_fetch(wcache->tdb, string_tdb_data(key_str)); tdb 2746 source3/winbindd/winbindd_cache.c tdb_delete(wcache->tdb, string_tdb_data(key_str)); tdb 2749 source3/winbindd/winbindd_cache.c tdb_delete(wcache->tdb, string_tdb_data(key_str)); tdb 2772 source3/winbindd/winbindd_cache.c if (cache->tdb == NULL) { tdb 2813 source3/winbindd/winbindd_cache.c if (cache->tdb == NULL) { tdb 2886 source3/winbindd/winbindd_cache.c if (wcache->tdb) { tdb 2887 source3/winbindd/winbindd_cache.c tdb_close(wcache->tdb); tdb 2888 source3/winbindd/winbindd_cache.c wcache->tdb = NULL; tdb 2895 source3/winbindd/winbindd_cache.c wcache->tdb = tdb_open_log(cache_path("winbindd_cache.tdb"), tdb 2900 source3/winbindd/winbindd_cache.c if (!wcache->tdb) { tdb 2905 source3/winbindd/winbindd_cache.c tdb_traverse(wcache->tdb, traverse_fn_cleanup, NULL); tdb 2929 source3/winbindd/winbindd_cache.c if (!cache->tdb) { tdb 2933 source3/winbindd/winbindd_cache.c tdb_traverse(cache->tdb, traverse_fn_cached_creds, (void *)count); tdb 2977 source3/winbindd/winbindd_cache.c if (!cache->tdb) { tdb 2990 source3/winbindd/winbindd_cache.c tdb_delete(cache->tdb, string_tdb_data(key_str)); tdb 2995 source3/winbindd/winbindd_cache.c ret = tdb_traverse(cache->tdb, traverse_fn_get_credlist, NULL); tdb 3009 source3/winbindd/winbindd_cache.c data = tdb_fetch(cache->tdb, string_tdb_data(cred->name)); tdb 3038 source3/winbindd/winbindd_cache.c if (tdb_delete(cache->tdb, string_tdb_data(oldest->name)) == 0) { tdb 3060 source3/winbindd/winbindd_cache.c if (wcache == NULL || wcache->tdb == NULL) { tdb 3075 source3/winbindd/winbindd_cache.c data = tdb_fetch_bystring( wcache->tdb, "WINBINDD_OFFLINE" ); tdb 3104 source3/winbindd/winbindd_cache.c if (!wcache->tdb) { tdb 3109 source3/winbindd/winbindd_cache.c tdb_delete_bystring(wcache->tdb, "WINBINDD_OFFLINE"); tdb 3725 source3/winbindd/winbindd_cache.c TDB_CONTEXT *tdb = NULL; tdb 3731 source3/winbindd/winbindd_cache.c tdb = tdb_open_log(tdb_path, tdb 3738 source3/winbindd/winbindd_cache.c if (!tdb) { tdb 3743 source3/winbindd/winbindd_cache.c tdb_close(tdb); tdb 3772 source3/winbindd/winbindd_cache.c if (wcache == NULL || wcache->tdb == NULL) { tdb 3775 source3/winbindd/winbindd_cache.c ret = tdb_validate(wcache->tdb, cache_traverse_validate_fn); tdb 4034 source3/winbindd/winbindd_cache.c ret = tdb_delete( wcache->tdb, key ); tdb 4045 source3/winbindd/winbindd_cache.c ret = tdb_store( wcache->tdb, key, data, 0 ); tdb 4068 source3/winbindd/winbindd_cache.c data = tdb_fetch( wcache->tdb, key ); tdb 4234 source3/winbindd/winbindd_cache.c if (!cache->tdb) tdb 756 source4/lib/ldb/common/ldb_modules.c LDB_BACKEND(tdb), \ tdb 275 source4/lib/ldb/ldb_tdb/ldb_cache.c tdb_get_seqnum(ltdb->tdb) == ltdb->tdb_seqnum) { tdb 311 source4/lib/ldb/ldb_tdb/ldb_cache.c ltdb->tdb_seqnum = tdb_get_seqnum(ltdb->tdb); tdb 460 source4/lib/ldb/ldb_tdb/ldb_cache.c ltdb->tdb_seqnum = tdb_get_seqnum(ltdb->tdb); tdb 291 source4/lib/ldb/ldb_tdb/ldb_index.c tdb_repack(ltdb->tdb); tdb 1505 source4/lib/ldb/ldb_tdb/ldb_index.c static int delete_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *state) tdb 1509 source4/lib/ldb/ldb_tdb/ldb_index.c return tdb_delete(tdb, key); tdb 1517 source4/lib/ldb/ldb_tdb/ldb_index.c static int re_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *state) tdb 1555 source4/lib/ldb/ldb_tdb/ldb_index.c tdb_delete(tdb, key); tdb 1556 source4/lib/ldb/ldb_tdb/ldb_index.c tdb_store(tdb, key2, data, 0); tdb 1596 source4/lib/ldb/ldb_tdb/ldb_index.c ret = tdb_traverse(ltdb->tdb, delete_index, NULL); tdb 1607 source4/lib/ldb/ldb_tdb/ldb_index.c ret = tdb_traverse(ltdb->tdb, re_index, module); tdb 224 source4/lib/ldb/ldb_tdb/ldb_search.c tdb_data = tdb_fetch(ltdb->tdb, tdb_key); tdb 256 source4/lib/ldb/ldb_tdb/ldb_search.c tdb_data = tdb_fetch(ltdb->tdb, tdb_key); tdb 374 source4/lib/ldb/ldb_tdb/ldb_search.c static int search_func(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *state) tdb 447 source4/lib/ldb/ldb_tdb/ldb_search.c ret = tdb_traverse(ltdb->tdb, search_func, ctx); tdb 449 source4/lib/ldb/ldb_tdb/ldb_search.c ret = tdb_traverse_read(ltdb->tdb, search_func, ctx); tdb 88 source4/lib/ldb/ldb_tdb/ldb_tdb.c return tdb_lockall_read(ltdb->tdb); tdb 101 source4/lib/ldb/ldb_tdb/ldb_tdb.c return tdb_unlockall_read(ltdb->tdb); tdb 234 source4/lib/ldb/ldb_tdb/ldb_tdb.c ret = tdb_store(ltdb->tdb, tdb_key, tdb_data, flgs); tdb 236 source4/lib/ldb/ldb_tdb/ldb_tdb.c ret = ltdb_err_map(tdb_error(ltdb->tdb)); tdb 242 source4/lib/ldb/ldb_tdb/ldb_tdb.c tdb_delete(ltdb->tdb, tdb_key); tdb 327 source4/lib/ldb/ldb_tdb/ldb_tdb.c ret = tdb_delete(ltdb->tdb, tdb_key); tdb 331 source4/lib/ldb/ldb_tdb/ldb_tdb.c ret = ltdb_err_map(tdb_error(ltdb->tdb)); tdb 578 source4/lib/ldb/ldb_tdb/ldb_tdb.c tdb_data = tdb_fetch(ltdb->tdb, tdb_key); tdb 581 source4/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 849 source4/lib/ldb/ldb_tdb/ldb_tdb.c if (tdb_transaction_start(ltdb->tdb) != 0) { tdb 850 source4/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 868 source4/lib/ldb/ldb_tdb/ldb_tdb.c tdb_transaction_cancel(ltdb->tdb); tdb 869 source4/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 872 source4/lib/ldb/ldb_tdb/ldb_tdb.c if (tdb_transaction_commit(ltdb->tdb) != 0) { tdb 873 source4/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 887 source4/lib/ldb/ldb_tdb/ldb_tdb.c tdb_transaction_cancel(ltdb->tdb); tdb 888 source4/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 891 source4/lib/ldb/ldb_tdb/ldb_tdb.c if (tdb_transaction_cancel(ltdb->tdb) != 0) { tdb 892 source4/lib/ldb/ldb_tdb/ldb_tdb.c return ltdb_err_map(tdb_error(ltdb->tdb)); tdb 1264 source4/lib/ldb/ldb_tdb/ldb_tdb.c ltdb->tdb = ltdb_wrap_open(ltdb, path, 10000, tdb 1267 source4/lib/ldb/ldb_tdb/ldb_tdb.c if (!ltdb->tdb) { tdb 8 source4/lib/ldb/ldb_tdb/ldb_tdb.h TDB_CONTEXT *tdb; tdb 34 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c struct tdb_context *tdb; tdb 44 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c tdb_close(w->tdb); tdb 57 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c static void ltdb_log_fn(struct tdb_context *tdb, enum tdb_debug_level level, const char *fmt, ...) PRINTF_ATTRIBUTE(3, 4); tdb 58 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c static void ltdb_log_fn(struct tdb_context *tdb, enum tdb_debug_level level, const char *fmt, ...) tdb 61 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c const char *name = tdb_name(tdb); tdb 62 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c struct ldb_context *ldb = talloc_get_type(tdb_get_logging_private(tdb), struct ldb_context); tdb 119 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c return w->tdb; tdb 129 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c w->tdb = tdb_open_ex(path, hash_size, tdb_flags, open_flags, mode, &log_ctx, NULL); tdb 130 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c if (w->tdb == NULL) { tdb 135 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c if (fstat(tdb_fd(w->tdb), &st) != 0) { tdb 136 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c tdb_close(w->tdb); tdb 153 source4/lib/ldb/ldb_tdb/ldb_tdb_wrap.c return w->tdb; tdb 992 source4/lib/messaging/messaging.c if (tdb_lock_bystring(t->tdb, name) != 0) { tdb 996 source4/lib/messaging/messaging.c rec = tdb_fetch_bystring(t->tdb, name); tdb 1001 source4/lib/messaging/messaging.c tdb_unlock_bystring(t->tdb, name); tdb 1006 source4/lib/messaging/messaging.c if (tdb_store_bystring(t->tdb, name, rec, 0) != 0) { tdb 1010 source4/lib/messaging/messaging.c tdb_unlock_bystring(t->tdb, name); tdb 1036 source4/lib/messaging/messaging.c if (tdb_lock_bystring(t->tdb, name) != 0) { tdb 1040 source4/lib/messaging/messaging.c rec = tdb_fetch_bystring(t->tdb, name); tdb 1042 source4/lib/messaging/messaging.c tdb_unlock_bystring(t->tdb, name); tdb 1049 source4/lib/messaging/messaging.c tdb_unlock_bystring(t->tdb, name); tdb 1058 source4/lib/messaging/messaging.c tdb_unlock_bystring(t->tdb, name); tdb 1081 source4/lib/messaging/messaging.c if (tdb_lock_bystring(t->tdb, name) != 0) { tdb 1085 source4/lib/messaging/messaging.c rec = tdb_fetch_bystring(t->tdb, name); tdb 1087 source4/lib/messaging/messaging.c tdb_unlock_bystring(t->tdb, name); tdb 1094 source4/lib/messaging/messaging.c tdb_unlock_bystring(t->tdb, name); tdb 1109 source4/lib/messaging/messaging.c tdb_store_bystring(t->tdb, name, rec, 0); tdb 1111 source4/lib/messaging/messaging.c tdb_unlock_bystring(t->tdb, name); tdb 33 source4/lib/tdb_wrap.c tdb_close(w->tdb); tdb 41 source4/lib/tdb_wrap.c static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, tdb 44 source4/lib/tdb_wrap.c static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, tdb 73 source4/lib/tdb_wrap.c const char *name = tdb_name(tdb); tdb 105 source4/lib/tdb_wrap.c w->tdb = tdb_open_ex(name, hash_size, tdb_flags, tdb 107 source4/lib/tdb_wrap.c if (w->tdb == NULL) { tdb 28 source4/lib/tdb_wrap.h struct tdb_context *tdb; tdb 302 source4/ntvfs/common/brlock_tdb.c if (tdb_chainlock(brl->w->tdb, kbuf) != 0) { tdb 320 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 325 source4/ntvfs/common/brlock_tdb.c dbuf = tdb_fetch(brl->w->tdb, kbuf); tdb 360 source4/ntvfs/common/brlock_tdb.c if (tdb_store(brl->w->tdb, kbuf, dbuf, TDB_REPLACE) != 0) { tdb 366 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 380 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 452 source4/ntvfs/common/brlock_tdb.c if (tdb_chainlock(brl->w->tdb, kbuf) != 0) { tdb 456 source4/ntvfs/common/brlock_tdb.c dbuf = tdb_fetch(brl->w->tdb, kbuf); tdb 458 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 497 source4/ntvfs/common/brlock_tdb.c if (tdb_delete(brl->w->tdb, kbuf) != 0) { tdb 514 source4/ntvfs/common/brlock_tdb.c if (tdb_store(brl->w->tdb, kbuf, dbuf, TDB_REPLACE) != 0) { tdb 521 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 530 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 552 source4/ntvfs/common/brlock_tdb.c if (tdb_chainlock(brl->w->tdb, kbuf) != 0) { tdb 556 source4/ntvfs/common/brlock_tdb.c dbuf = tdb_fetch(brl->w->tdb, kbuf); tdb 558 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 574 source4/ntvfs/common/brlock_tdb.c if (tdb_delete(brl->w->tdb, kbuf) != 0) { tdb 585 source4/ntvfs/common/brlock_tdb.c if (tdb_store(brl->w->tdb, kbuf, dbuf, TDB_REPLACE) != 0) { tdb 592 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 602 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 623 source4/ntvfs/common/brlock_tdb.c dbuf = tdb_fetch(brl->w->tdb, kbuf); tdb 666 source4/ntvfs/common/brlock_tdb.c if (tdb_chainlock(brl->w->tdb, kbuf) != 0) { tdb 670 source4/ntvfs/common/brlock_tdb.c dbuf = tdb_fetch(brl->w->tdb, kbuf); tdb 672 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 700 source4/ntvfs/common/brlock_tdb.c if (tdb_delete(brl->w->tdb, kbuf) != 0) { tdb 711 source4/ntvfs/common/brlock_tdb.c if (tdb_store(brl->w->tdb, kbuf, dbuf, TDB_REPLACE) != 0) { tdb 717 source4/ntvfs/common/brlock_tdb.c tdb_chainunlock(brl->w->tdb, kbuf); tdb 116 source4/ntvfs/common/notify.c notify->seqnum = tdb_get_seqnum(notify->w->tdb); tdb 136 source4/ntvfs/common/notify.c if (tdb_lock_bystring(notify->w->tdb, NOTIFY_KEY) != 0) { tdb 147 source4/ntvfs/common/notify.c tdb_unlock_bystring(notify->w->tdb, NOTIFY_KEY); tdb 160 source4/ntvfs/common/notify.c seqnum = tdb_get_seqnum(notify->w->tdb); tdb 172 source4/ntvfs/common/notify.c dbuf = tdb_fetch_bystring(notify->w->tdb, NOTIFY_KEY); tdb 219 source4/ntvfs/common/notify.c ret = tdb_delete_bystring(notify->w->tdb, NOTIFY_KEY); tdb 239 source4/ntvfs/common/notify.c ret = tdb_store_bystring(notify->w->tdb, NOTIFY_KEY, dbuf, TDB_REPLACE); tdb 119 source4/ntvfs/common/opendb_tdb.c tdb_chainunlock(lck->odb->w->tdb, lck->key); tdb 148 source4/ntvfs/common/opendb_tdb.c if (tdb_chainlock(odb->w->tdb, lck->key) != 0) { tdb 241 source4/ntvfs/common/opendb_tdb.c dbuf = tdb_fetch(odb->w->tdb, lck->key); tdb 270 source4/ntvfs/common/opendb_tdb.c ret = tdb_delete(odb->w->tdb, lck->key); tdb 285 source4/ntvfs/common/opendb_tdb.c ret = tdb_store(odb->w->tdb, lck->key, dbuf, TDB_REPLACE); tdb 130 source4/ntvfs/posix/xattr_tdb.c tdata = tdb_fetch(pvfs->ea_db->tdb, tkey); tdb 164 source4/ntvfs/posix/xattr_tdb.c if (tdb_chainlock(pvfs->ea_db->tdb, tkey) != 0) { tdb 174 source4/ntvfs/posix/xattr_tdb.c if (tdb_store(pvfs->ea_db->tdb, tkey, tdata, TDB_REPLACE) == -1) { tdb 179 source4/ntvfs/posix/xattr_tdb.c tdb_chainunlock(pvfs->ea_db->tdb, tkey); tdb 199 source4/ntvfs/posix/xattr_tdb.c if (tdb_delete(pvfs->ea_db->tdb, tkey) == -1) { tdb 47 source4/param/secrets.c tdb_change_int32_atomic(secretsdb->tdb, "INFO/random_seed", new_seed, 1); tdb 58 source4/param/secrets.c struct tdb_wrap *tdb; tdb 62 source4/param/secrets.c tdb = tdb_wrap_open(mem_ctx, fname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600); tdb 64 source4/param/secrets.c if (!tdb) { tdb 77 source4/param/secrets.c set_rand_reseed_callback((void (*) (void *, int *))get_rand_seed, tdb); tdb 82 source4/param/secrets.c return tdb; tdb 29 source4/torture/basic/mangle_test.c static TDB_CONTEXT *tdb; tdb 92 source4/torture/basic/mangle_test.c data = tdb_fetch_bystring(tdb, shortname); tdb 108 source4/torture/basic/mangle_test.c tdb_store_bystring(tdb, shortname, namedata, TDB_REPLACE); tdb 170 source4/torture/basic/mangle_test.c tdb = tdb_open(NULL, 100000, TDB_INTERNAL, 0, 0); tdb 171 source4/torture/basic/mangle_test.c if (!tdb) { tdb 44 source4/torture/local/dbspeed.c ret = tdb_store(tdbw->tdb, key, data, TDB_INSERT); tdb 100 source4/torture/local/dbspeed.c data = tdb_fetch(tdbw->tdb, key); tdb 109 source4/torture/local/dbspeed.c data = tdb_fetch(tdbw->tdb, key);