summaryrefslogtreecommitdiffstats
path: root/lib/tdb2/tdb1_tdb.c
Commit message (Collapse)AuthorAgeFilesLines
* TDB2: remove TDB1 compatibility.Rusty Russell2012-06-191-833/+0
| | | | | | | This rips out all the TDB1 compatibility from tdb2. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* tdb2: fix prototype in tdb1 code.Rusty Russell2012-03-291-5/+5
| | | | | | | | | | We were handing an int-returning function where we should hand an enum TDB_ERROR returning function. Worse, it was returning 0/-1 instead of 0/TDB_ERR_*. Fortunately, it's only compared against success, but the Solaris compiler warns about it, and it's not correct anyway. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* tdb: Use tdb_parse_record in tdb_update_hashVolker Lendecke2011-12-251-11/+15
| | | | This avoids a tdb_fetch, thus a malloc/memcpy/free in the tdb_store path
* tdb2: Avoid a malloc/memcpy in _tdb1_storeVolker Lendecke2011-12-191-19/+8
| | | | | Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Mon Dec 19 16:53:40 CET 2011 on sn-devel-104
* tdb2: don't continue if tdb1_find fails.Rusty Russell2011-09-141-16/+37
| | | | | | | | | | | | | | | | | The TDB1 code's tdb1_find() returns 0 on error; the callers should not assume that the error means that the entry wasn't found, but use last_error to determine it. This was found by looking at how long the failure path testing for test/run-10-simple-store.c was taking under valgrind, ie: valgrind -q ./run-10-simple-store --show-slowest This change dropped the time for that test from 53 seconds to 19 seconds. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 1be090a2d749713cfd0c4584cafb97bffd716189)
* tdb2: log allocation failures in tdb1 backend.Rusty Russell2011-09-141-1/+3
| | | | | | | The TDB2 tests are stricter about this; they want every error logged. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 670ba98f74b52df541d153eeab9d3310932e75cd)
* tdb2: add stats to tdb1 backend.Rusty Russell2011-09-141-5/+12
| | | | | | | | It's actually quite a good fit; we use compare_wrong_bucket for dead records, which is kind of correct (they should be in the free list). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit a3e4ebff2eb9dc2e386160b8acf77d70236f4def)
* tdb2: increment seqnum on tdb_wipe_all in tdb1 backend.Rusty Russell2011-09-141-0/+1
| | | | | Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 79dee5018a407be1d0674d6108b60f8e8c882b7c)
* tdb2: log an error when calling tdb_store() on read-only TDB in tdb1 backend.Rusty Russell2011-09-141-1/+3
| | | | | Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit b236a8dcc37bb864b632a2898a64f3c9bf75b4ac)
* tdb2: make tdb1_null static.Rusty Russell2011-09-141-4/+5
| | | | | | | | It's only used in two files, make it static in one and do it manually in the other. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 8571daf007f03a2888566dbaae8a5849ffba60f3)
* tdb2: tdb_repackRusty Russell2011-09-141-102/+0
| | | | | | | | | | Move the tdb1_repack() code into the core, make it general, rename to tdb_repack(). It's generic code: copy database into temporary, wipe it, copy back. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit e487983a4099b6f760056ff7182f2ff543e6da71)
* tdb2: unify tdb1_parse_record into tdb_parse_recordRusty Russell2011-09-141-25/+7
| | | | | | | Switch on the TDB_VERSION1 flag. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 3352e4e947777d4a90a2dd4f3037e1e494231b25)
* tdb2: unify tdb1_chainlock et al. into tdb_chainlockRusty Russell2011-09-141-8/+3
| | | | | | | Switch on the TDB_VERSION1 flag. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit ceb2f3eacbad917ee990afbc3dd800bfb0607887)
* tdb2: unify tdb1_traverse into tdb_traverseRusty Russell2011-09-141-2/+2
| | | | | | | | Switch on the TDB_VERSION1 flag; we now only do a tdb1_traverse_read on a read-only database, as there is no tdb2 equivalent. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit cc2d609dfca7192305ad477b8c2b52cfdc1aa9be)
* tdb2: unify tdb1_store into tdb_storeRusty Russell2011-09-141-0/+1
| | | | | | | Switch on the TDB_VERSION1 flag. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 2bba2a856a6cfdb93085b701557850bc1da99587)
* tdb2: unify tdb1_delete into tdb_delete.Rusty Russell2011-09-141-0/+1
| | | | | | | Switch on the TDB_VERSION1 flag. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit acb26c9c3ee054c8b2141db25c9bd7be064e425c)
* tdb2: unify tdb1_append into tdb_appendRusty Russell2011-09-141-0/+2
| | | | | | | Switch on the TDB_VERSION1 flag. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 8bc38cb177928ef739440c32e33a8eaf23a5dd22)
* tdb2: unify tdb1_fetch into tdb_fetchRusty Russell2011-09-141-4/+5
| | | | | | | Switch on the TDB_VERSION1 flag. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 08c05da588018c6b76834e57b66d525546643708)
* tdb2: unify tdb1_store into tdb_storeRusty Russell2011-09-141-0/+3
| | | | | | | Switch on the TDB_VERSION1 flag. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 98c754ffe65bc335f66161d6cc8705d4ea2710ec)
* tdb2: unify tdb1_open into tdb_openRusty Russell2011-09-141-7/+7
| | | | | | | | | | | | | | Finally, we gut tdb1_open() to the tdb1-specific parts, and call it from tdb_open if they specify the TDB_VERSION1 flag or the version is a TDB1. We also unify tdb_close(), based on the TDB_VERSION1 flag. Note that tdb_open(TDB_VERSION1) will fail on an existing tdb if it's a TDB2. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit c8c3b3568677e8b0105f84e4ab068c580faf4591)
* tdb2: add TDB_ATTRIBUTE_TDB1_HASHSIZERusty Russell2011-09-141-6/+6
| | | | | | | | | This replaces the tdb1_open "hash_size" argument. It will only be valid when you call tdb_open() with O_CREAT in open_flags, and TDB_VERSION1 in tdb_flags. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 49475d68deecd0b31597ed6094229171d2699b11)
* tdb2: make tdb1_open use attributes for logging, hash function.Rusty Russell2011-09-141-1/+1
| | | | | | | This brings it closer to tdb_open(), so we can unify more easily. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit a446f1d4d161d66bbb19ba2551cf6429a4865964)
* tdb2: merge tdb1_context into tdb_context.Rusty Russell2011-09-141-45/+45
| | | | | | | | | | Finally, we split out the tdb2-specific parts of tdb_context, and put them into a "tdb2" sub-struct; the tdb1 parts go into a "tdb1" sub-struct. We get rido of tdb1_context and use tdb_context everywhere. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit bbeb528e74c0e234e1f724ac8d54be404cfc6f9a)
* tdb2: use tdb->flags & TDB_RDONLY instead of tdb->read_only for TDB1 code.Rusty Russell2011-09-141-2/+2
| | | | | | | | | There's also a semantic change here: for tdb1, being read-only meant no locking, and it was an error to try to lock a r/o database. For TDB2, you'd need to specify TDB_NOLOCK, which suppresses locking silently. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 4dc29a338fadeac805b369b4b0851c02f1b152c7)
* tdb2: Make TDB1 use the same tdb_hash() wrapper as TDB2Rusty Russell2011-09-141-6/+6
| | | | | | | | | This means converting the tdb1 inbuilt hash functions to the tdb2-style, so they return 64 bit. We truncate to 32 bit everywhere but in tdb_check() which needs to do so explicitly. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 3e46dde21261966941469a6c75e1b45cd2d26324)
* tdb2: Make tdb1 use the tdb_file structure.Rusty Russell2011-09-141-3/+3
| | | | | | | | | Because tdb2 allows multiple opens of the same TDB, we separate out the file information from the struct tdb_context. Do the same for tdb1. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 60210a73ec08a7b34ba637ad19e6749cf6dc1952)
* tdb2: Make TDB1 code use TDB2's open flags.Rusty Russell2011-09-141-5/+5
| | | | | | | | | | | | This means getting rid of TDB_VOLATILE (perhaps we should use an attribute for that?), TDB_INCOMPATIBLE_HASH (use the tdb_attribute_hash for that) and TDB_CLEAR_IF_FIRST (use the tdb_attribute_openhook for that). We also get rid of TDB_DISALLOW_NESTING: that's the default for TDB2. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 22d0e0dc59fc9d7e0046fec6971ef478c2d604fd)
* tdb2: Make tdb1 share tdb_store flags, struct tdb_data and TDB_MAGIC_FOOD.Rusty Russell2011-09-141-29/+29
| | | | | Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 8a47d50d72ea62e378dc92b150c92c1317c73fa3)
* tdb2: make TDB1 code use tdb2's TDB_ERROR and tdb_logerr()Rusty Russell2011-09-141-43/+51
| | | | | | | | | | | To do this, we make sure that the first few fields of tdb1_context and tdb_context are the same. This sweep also fixes up a few paths where we weren't setting tdb->ecode before our old logging function. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 919937354a331bb964564a11b5a5b80403ff8db9)
* tdb2: get rid of TDB1 mark and nonblock functions.Rusty Russell2011-09-141-1/+1
| | | | | | | We do this using hooks in tdb2. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 444fade529f68eb2b0aebbc8de442478c5c6f916)
* tdb2: remove _PUBLIC_ in tdb1 functions.Rusty Russell2011-09-141-13/+13
| | | | | | | They'll all be accessed via the tdb2 API. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 39f55294799c6443c0ad7bef09f1c113cf89d295)
* tdb2: Remove unused tdb1 functions.Rusty Russell2011-09-141-78/+0
| | | | | | | | We're going to use TDB2's API, so some TDB1 APIs are obviously unnecessary. We also get rid of USE_RIGHT_MERGES and TRACE code. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit b929638e3cfe629285af3ecd0813e03eaeaa1133)
* tdb2: import TDB1 code.Rusty Russell2011-09-141-0/+993
We import the entire codebase, putting a "tdb1_" prefix on the files and changing the "tdb_" prefix to "tdb1_" everywhere. The next patches will gradually merge it with the TDB2 code where necessary. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (Imported from CCAN commit 19e6c1a250ade1e7204ada17163294855585e825)