diff options
author | Stefan Metzmacher <metze@samba.org> | 2007-04-17 17:24:02 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:51:01 -0500 |
commit | 81fb404a6f61205ed141fd9f0681e704e2a33ad6 (patch) | |
tree | 9f8f6f81fa4e7ce1a6aebcbf4c387b005f4ab4b3 /source4/lib/tdb/common | |
parent | 45e8a27d984d3d75ba8ebca1ef3522b2f0fb3d4d (diff) | |
download | samba-81fb404a6f61205ed141fd9f0681e704e2a33ad6.tar.gz samba-81fb404a6f61205ed141fd9f0681e704e2a33ad6.tar.bz2 samba-81fb404a6f61205ed141fd9f0681e704e2a33ad6.zip |
r22319: sync lib/tdb/ with samba3
metze
(This used to be commit 8f24f6b38e967075589529a08c68a1a56f9f0499)
Diffstat (limited to 'source4/lib/tdb/common')
-rw-r--r-- | source4/lib/tdb/common/dump.c | 11 | ||||
-rw-r--r-- | source4/lib/tdb/common/freelist.c | 10 | ||||
-rw-r--r-- | source4/lib/tdb/common/freelistcheck.c | 2 | ||||
-rw-r--r-- | source4/lib/tdb/common/tdb_private.h | 2 |
4 files changed, 15 insertions, 10 deletions
diff --git a/source4/lib/tdb/common/dump.c b/source4/lib/tdb/common/dump.c index 577f23aac6..3f5c2c87f5 100644 --- a/source4/lib/tdb/common/dump.c +++ b/source4/lib/tdb/common/dump.c @@ -28,7 +28,8 @@ #include "tdb_private.h" -static tdb_off_t tdb_dump_record(struct tdb_context *tdb, tdb_off_t offset) +static tdb_off_t tdb_dump_record(struct tdb_context *tdb, int hash, + tdb_off_t offset) { struct list_struct rec; tdb_off_t tailer_ofs, tailer; @@ -39,8 +40,10 @@ static tdb_off_t tdb_dump_record(struct tdb_context *tdb, tdb_off_t offset) return 0; } - printf(" rec: offset=0x%08x next=0x%08x rec_len=%d key_len=%d data_len=%d full_hash=0x%x magic=0x%x\n", - offset, rec.next, rec.rec_len, rec.key_len, rec.data_len, rec.full_hash, rec.magic); + printf(" rec: hash=%d offset=0x%08x next=0x%08x rec_len=%d " + "key_len=%d data_len=%d full_hash=0x%x magic=0x%x\n", + hash, offset, rec.next, rec.rec_len, rec.key_len, rec.data_len, + rec.full_hash, rec.magic); tailer_ofs = offset + sizeof(rec) + rec.rec_len - sizeof(tdb_off_t); @@ -72,7 +75,7 @@ static int tdb_dump_chain(struct tdb_context *tdb, int i) printf("hash=%d\n", i); while (rec_ptr) { - rec_ptr = tdb_dump_record(tdb, rec_ptr); + rec_ptr = tdb_dump_record(tdb, i, rec_ptr); } return tdb_unlock(tdb, i, F_WRLCK); diff --git a/source4/lib/tdb/common/freelist.c b/source4/lib/tdb/common/freelist.c index 0efe47f879..01b61aff86 100644 --- a/source4/lib/tdb/common/freelist.c +++ b/source4/lib/tdb/common/freelist.c @@ -29,7 +29,7 @@ #include "tdb_private.h" /* read a freelist record and check for simple errors */ -int rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec) +int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *rec) { if (tdb->methods->tdb_read(tdb, off, rec, sizeof(*rec),DOCONV()) == -1) return -1; @@ -37,7 +37,7 @@ int rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *re if (rec->magic == TDB_MAGIC) { /* this happens when a app is showdown while deleting a record - we should not completely fail when this happens */ - TDB_LOG((tdb, TDB_DEBUG_WARNING, "rec_free_read non-free magic 0x%x at offset=%d - fixing\n", + TDB_LOG((tdb, TDB_DEBUG_WARNING, "tdb_rec_free_read non-free magic 0x%x at offset=%d - fixing\n", rec->magic, off)); rec->magic = TDB_FREE_MAGIC; if (tdb->methods->tdb_write(tdb, off, rec, sizeof(*rec)) == -1) @@ -47,7 +47,7 @@ int rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct list_struct *re if (rec->magic != TDB_FREE_MAGIC) { /* Ensure ecode is set for log fn. */ tdb->ecode = TDB_ERR_CORRUPT; - TDB_LOG((tdb, TDB_DEBUG_WARNING, "rec_free_read bad magic 0x%x at offset=%d\n", + TDB_LOG((tdb, TDB_DEBUG_WARNING, "tdb_rec_free_read bad magic 0x%x at offset=%d\n", rec->magic, off)); return TDB_ERRCODE(TDB_ERR_CORRUPT, -1); } @@ -286,7 +286,7 @@ tdb_off_t tdb_allocate(struct tdb_context *tdb, tdb_len_t length, struct list_st issues when faced with a slowly increasing record size. */ while (rec_ptr) { - if (rec_free_read(tdb, rec_ptr, rec) == -1) { + if (tdb_rec_free_read(tdb, rec_ptr, rec) == -1) { goto fail; } @@ -311,7 +311,7 @@ tdb_off_t tdb_allocate(struct tdb_context *tdb, tdb_len_t length, struct list_st } if (bestfit.rec_ptr != 0) { - if (rec_free_read(tdb, bestfit.rec_ptr, rec) == -1) { + if (tdb_rec_free_read(tdb, bestfit.rec_ptr, rec) == -1) { goto fail; } diff --git a/source4/lib/tdb/common/freelistcheck.c b/source4/lib/tdb/common/freelistcheck.c index 63d2dbadc2..19368f6ad6 100644 --- a/source4/lib/tdb/common/freelistcheck.c +++ b/source4/lib/tdb/common/freelistcheck.c @@ -88,7 +88,7 @@ int tdb_validate_freelist(struct tdb_context *tdb, int *pnum_entries) goto fail; } - if (rec_free_read(tdb, rec_ptr, &rec) == -1) { + if (tdb_rec_free_read(tdb, rec_ptr, &rec) == -1) { goto fail; } diff --git a/source4/lib/tdb/common/tdb_private.h b/source4/lib/tdb/common/tdb_private.h index 7219a1a2e2..02a23d0387 100644 --- a/source4/lib/tdb/common/tdb_private.h +++ b/source4/lib/tdb/common/tdb_private.h @@ -206,5 +206,7 @@ tdb_off_t tdb_find_lock_hash(struct tdb_context *tdb, TDB_DATA key, u32 hash, in struct list_struct *rec); void tdb_io_init(struct tdb_context *tdb); int tdb_expand(struct tdb_context *tdb, tdb_off_t size); +int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off, + struct list_struct *rec); |