Age | Commit message (Collapse) | Author | Files | Lines |
|
When chaining together long lines of bloody "if" statements, which should
logically be separated, and one of them allocates memory, remember to
*free* it *WHETHER OR NOT THE IF STATEMENTS SUCCEEDED* !!!!
Yes I do consider this a bug in the coding style of Tridge, Rusty, Tim et al. :-).
I'm just pissed 'cos this took 4 hours to track down even with an insure error report
stating me in the face and also Ben Woodward looking over the code with me :-).
Jeremy.
(This used to be commit 506b5e34c3ba16768dbc82ba21044787de160c45)
|
|
dead records, else the record is just marked for deletion, not actually deleted.
Second, ensure allocated record is marked as "in use" before free list lock is
released, else other processes in the freelist merge code may try and merge it.
Jeremy.
(This used to be commit dd959fa325c5df8ce0407d8debea76602c8e71cf)
|
|
Jeremy.
(This used to be commit cfc62fecdf4c5579ee643df3e701cf6f1fe553ee)
|
|
and the next hashchain is empty.
Jeremy
(This used to be commit f3b5e2a172a777e1c3bbf6ac72fe5c7cdb8324b3)
|
|
a --with-spinlocks option to configure, this does mean the on-disk tdb
format has changed, so 2.2alphaX sites will need to re-create their
tdb's. The upside is no more tdb fragmentation and a +5% on netbench.
Swings and roundabouts....
Jeremy.
(This used to be commit 9dea7b7c257db487f8ced7dad3fce92fba03ea91)
|
|
Jeremy.
(This used to be commit c9884e16fc2d13dd62c5a43633c9a38dadc9822c)
|
|
This needs TESTING !!! (It passes tdbtest of course :-).
Jeremy.
(This used to be commit 7ae54a93e756d927419242adf35f46e91e974573)
|
|
Jeremy.
(This used to be commit ee89ca9e68abb23fc26cd1378e02e56d0d725e55)
|
|
fragmentation
(This used to be commit b64e1ae69314ae110c548f57810c34e620d57075)
|
|
(This used to be commit 03453e2ae557d7fa119338b71744822093d2f38a)
|
|
is conceptually flawed
(This used to be commit 6e4a3585521b7e5928298bd0f1418ff9fbcacfb4)
|
|
Jeremy.
(This used to be commit 7914e9351abb5271ebb4990c3b1fe495d15a4eda)
|
|
them (this can happen if smbd processes are shut down at the wrong time).
Jeremy.
(This used to be commit c1de97f96b8c5ad8e5f01a0d17c6387733769442)
|
|
- don't use as many locks on a store
(This used to be commit ee12b10d21022287baf4432d1df743c4b28223b2)
|
|
this will give us a much nicer migration path for the proposed
semaphore code
(This used to be commit 491ab241897a7252fb088c718de4bdf7f43f4ddc)
|
|
(This used to be commit a5ca60f62bea988e74e2827fbb848770ac5ae444)
|
|
used for semaphores and future expansion
- update tdb version number to 2
(This used to be commit 5e04885b86791e6ef8b4a316e64d56c6eb05f35d)
|
|
Jeremy.
(This used to be commit 400906e6421c150b591b4bf978a641d5aaf8fd09)
|
|
(This used to be commit 5341597de6772027034cad7dacbdbd6d2108332a)
|
|
TDB_INTERNAL replaces the old method of passing a null filename
(This used to be commit 8ec815920d46f205b9f3fff82397c731753c3a10)
|
|
call to ms_fnmatch(). This also removes all the Win9X semantics stuff
and a bunch of other associated cruft.
- moved the stat cache code into statcache.c
- fixed the uint16 alignment requirements of ascii_to_unistr() and
unistr_to_ascii()
- trans2 SMB_FIND_FILE_BOTH_DIRECTORY_INFO returns the short name as
unicode always (at least thats what NT4 does)
- fixed some errors in the in-memory tdb code. Still ugly, but doesn't
crash as much
(This used to be commit 03e9cea004bbba72161a5323cf3b4556c94aed8e)
|
|
(This used to be commit 77009422a075300e5c07a3e75806a7dac47e2113)
|
|
the tdb_get/set_int string functions in terms of them. Will be useful in storing
POSIX pending close records (which are ints but indexed by dev/inode pairs).
Jeremy.
(This used to be commit d69e4c6a48746459f973144393529b1f40680d2f)
|
|
(This used to be commit 90b574296e06cd6ed4fedc1e5a8ae412a5e78b45)
|
|
(This used to be commit 044af3cf977e3172b3b1ce3f71457d5b0a4fc1b2)
|
|
they are very useful for database versioning
(This used to be commit cc65914cdcceb1fdeeb5d6ec1cf2ea2f865c5092)
|
|
(This used to be commit bbacdb834f9c8f8c34368664def42dabe78d90c9)
|
|
associated with them. tdb can then be used as a hash table data
structure.
(This used to be commit b345c0a1058bcde7689bb9566535e9f1c46ee173)
|
|
(This used to be commit 7faa70d254549e60520de1ed1112d41fe9a4d77c)
|
|
with NULL tdb context.
(This used to be commit ba9f24c0964054f22cd8f0de32cfeacb88b4800c)
|
|
two places i found where it was appropriate to _use_ that third argument,
in locking.c and brlock.c! there was a static traverse_function and
i removed the static variable, typecast it to a void*, passed it to
tdb_traverse and re-cast it back to the traverse_function inside the
tdb_traverse function. this makes the use of tdb_traverse() reentrant,
which is never going to happen, i know, i just don't like to see
statics lying about when there's no need for them.
as i had to do in samba-tng, all uses of tdb_traverse modified to take
the new void* state argument.
2) disabled rpcclient: referring people to use SAMBA_TNG rpcclient.
i don't know how the other samba team members would react if i deleted
rpcclient from cvs main. damn, that code's so old, it's unreal.
20 rpcclient commands, instead of about 70 in SAMBA_TNG.
(This used to be commit 49d7f0afbc1c5425d53019e234d54ddf205c8e9a)
|
|
Jeremy.
(This used to be commit 82c99dc8d8bc79e88f0db651f04fc23508195a51)
|
|
(This used to be commit 77cf152c02b445f4b6e9de393936dd6e54e6f442)
|
|
(This used to be commit 2a152998a1489dead0edadb06f78b0ad6ede1a3a)
|
|
(This used to be commit bf9b1328c5843eb217eff4ca05645498de2def82)
|
|
- fixed a race condition in tdb_open()
(This used to be commit 21d4882f64a65ee1786231eb55b7768bb44921fd)
|
|
(This used to be commit 51ed6e8cec47642641e6b26682fd6f25624b19ae)
|
|
and doesn't seem to affect performance
(This used to be commit 1fb293732ed65deba6958000a9f6de7900e21f5c)
|
|
(This used to be commit c199ec9543d0d84bd5ea29078887684f708c9637)
|
|
- added TDB_CLEAR_IF_FIRST flag to clear the database if this is the
first attached process. Useful for non-persistent databases like our
locking area (this will also make upgrades to new database layouts easier)
- use lock_path() in a couple of places
- leave connections database open while smbd running
- cleaned up some tdb code a little, using macros for constants
(This used to be commit 00e9da3ca577527db392aced62f02c69cfee8f4f)
|
|
- prevent a free of an unallocated pointer
(This used to be commit b35b5c63886823bb8b8d8c5c29ccc7b315a7de30)
|
|
(This used to be commit 584537961b6134a50089d37328a21c617bc6547b)
|
|
(This used to be commit 1f5dc924044fb54b10ac8884d4df1e15902de8be)
|
|
(This used to be commit ed7541668e9bc98ae9daf55f817d2de04345e660)
|
|
(This used to be commit c547ffa9e9ce68a77f63591b37b690a83a956348)
|
|
instead of either sysv or mmap shared memory or lock files.
this means we can now completely remove
locking_shm.c
locking_slow.c
shmem.c
shmem_sysv.c
and lots of other things also got simpler
locking.c got a bit larger, but is much better compartmentalised now
(This used to be commit e48c2d9937eea0667b8cd3332e49c06314ef31e7)
|
|
SWAT status page and smbstatus. It made the code _much_ simpler, I
wish we'd done a database module a long time ago!
(This used to be commit 4951755413c11d4c5b9af4699a6e622056d52433)
|
|
suite and a very simple tool for manuipulating the databases.
the main code is in tdb/tdb.c and includes both mmap and file based
IO. All databases auto-expand and allow multiple simultaneous writers.
the next step is using this new capability in lots of places in Samba
where we have existing ad-hoc databases
(This used to be commit c89d29cc5e3b6d568928acace01144059f1668b3)
|