Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Jeremy.
(cherry picked from commit 0bae1ef3de8fda5e1e2d641b14a408e627396912)
(This used to be commit db2acaf46fdc38078b6b28b68909e289f6c9e0ec)
|
|
to do so may result in lost data. Fix an ifdef check, I really think we meant to check HAVE_MMAP here.
(cherry picked from commit 74c8575b3f3b90ea21ae6aa7ccd95947838af956)
(This used to be commit 8fd54bb55f0c23bd025d1719abcbe75c6a2ea8ac)
|
|
With the ctdb checkin dde9f3f006 tdb optimized out write lock checks for
write-enabled transaction. Sadly, this also removed the possibility to ever
remove dead records left over from tdb_delete calls within a transaction.
Tridge, please check this! Did dde9f3f006 have any reason beyond performance
optimizations?
Thanks,
Volker
(cherry picked from commit 3f884c4ae36f3260e63626bdd4989d9258ae6497)
(This used to be commit 1d85e0647e287d269b3f6b534da88f497d6f76c3)
|
|
used for tdb_traverse() to tdb_traverse_read().
Jeremy.
(This used to be commit e05ec3047c4fe0cc2e09a812830fc835dc35abea)
|
|
Calling tdb_traverse inside a transaction led to the transaction lock being
held indefinitely. This was caused by the tdb_transaction_lock/unlock inside
tdb_traverse: The transaction code holds the global lock at offset
TRANSACTION_LOCK. The call to tdb_transaction_lock does nothing because the
transaction_lock is already being held. tdb_transaction_unlock inside tdb_wrap
resets tdb->have_transaction_lock but does not release the kernel-level fcntl
lock. transaction_commit later on does not release that fcntl lock either,
because tdb->have_transaction_lock was already reset by tdb_transaction().
This patch does fix that problem for me. An alternative would be to make
tdb->have_transaction_lock a counter that can cope with proper nesting, maybe
in other places as well.
Volker
(This used to be commit 89543005fe2e4934b3c560c937d49304a32a7fc2)
|
|
(This used to be commit b3e60a388d338ef90540007239e88563cb9ba27a)
|
|
(This used to be commit df4efb902ec5053ae9d7c6e4fd1e21255ca66914)
|
|
(This used to be commit eb3af24926977208a8099c848a510704d2ae3524)
|
|
(This used to be commit 7077df3e2e3f171532f6a5ac87d45201736c9c11)
|
|
(This used to be commit c54c087a19e36e0522eb4546c9425ae446f0628b)
|
|
(This used to be commit ed0c3a0f74c305b3b8554b05c3f97cf79db8296a)
|
|
Jeremy.
(This used to be commit 52b26645b04a9c5fb70e7b869b60c9157f821d50)
|
|
Add in the alarm fix to allow locks to exit on
alarm signal.
Sync up the changes in tools.
Jeremy.
(This used to be commit cb6c663fa8818f49cc36f196bb5f4dea47edd69e)
|
|
r23977.
Michael
(This used to be commit 7b2cabea55cebb98e0fcee17066a0871667cd83f)
|
|
(This used to be commit 48d1aa4fcf6a323e3e6a14825f83cd20e3fc3a26)
|
|
(This used to be commit f90a698387c53508862eb6359bd4d1fba1d2b4b0)
|
|
Michael
(This used to be commit b97acdc67b1a55529e69bb7b2b78a317a34b1eba)
|
|
error condition to write. This is in tdb_new_database.
Fix one call to tdb_new_database in tdb_open_ex to not
overwrite the newly propagated errno (typically ENOSPC).
Michael
(This used to be commit eb524df0a52783de6c94a11b44f268e0f26fbb2c)
|
|
Add TDB_VOLATILE as open_flag to activate the per-hashchain dead record
optimization.
(This used to be commit 868cdb1781fe94afbc1658e72bf06de20193bcd7)
|
|
* prevent infinite loops due to 0 bytes written:
try once more. if we still get 0 as return,
set errno to ENOSPC and return -1 (error)
* replace int by correct types (ssize_t and size_t).
* print a warning log message in case "written < requested to write"
usually this means, that the next call to pwrite will fail
with return value -1 and set errno accordingly.
Note that the former error condition "written != requested to write"
is not a correct error condition of write/pwrite. If this is due
to an error, a subsequent call to (p)write will reveal the cause
(typically "no space left on device" - ENOSPC).
Michael
(This used to be commit 7f415d12239fc67eb2c7894c6359b9507fe122c6)
|
|
The proper error condition is (ret == -1) instead of
(ret != number_of_byte_told_to_write).
Michael
(This used to be commit 4c3c6363f860ec01d3c789ef8ee2aa3eb77000dc)
|
|
(This used to be commit 40c0919aaa9c1b14bbaebb95ecce53eb0380fdbb)
|
|
(This used to be commit 84b468b2f8f2dffda89593f816e8bc6a8b6d42ac)
|
|
Jeremy.
(This used to be commit 59ba128cb61e77a830ddd8b8e1d5d0fd00f99736)
|
|
say "locks chain and returned record", not
"and returns record"
Jeremy.
(This used to be commit fa880e6cc16024f14d10cdc8120ce67bfd1d2eb6)
|
|
travlocks.lock_rw for lock read/write types, it
was sometimes using it (tdb_next_lock) and
sometimes explicitly using F_WRLCK instead.
Change this to consistently use travlocks.lock_rw
only.
I'm pretty sure about this fix (else I woudn't
be checking this in :-) but tridge and Volker
please review.
Jeremy.
(This used to be commit fa548ad75e945ae4d167baffb87140c90cba268c)
|
|
this ensures that having the global lock also implies the transaction
lock
(This used to be commit 9dbb2633d7781fcc5d15b175ef36bfda5eb199bb)
|
|
(This used to be commit a88ab4fa3a07c31bc45c612043f9e096f384eda4)
|
|
(This used to be commit bffb8f88006fd2530cad270df642d9a23a01b34b)
|
|
(This used to be commit a0ff739bcab32065d9d3957eb1d93f7791f84f04)
|
|
metze
(This used to be commit 8f24f6b38e967075589529a08c68a1a56f9f0499)
|
|
(This used to be commit ff78be0be4ef67ed25bfb837bd8a7bf4105367fb)
|
|
thanks to Ted T'so for pointing this out
(This used to be commit 6921f2f7093bbb6c236f16947072026303e58439)
|
|
metze
(This used to be commit 902a76ca705f07c61f86a9ef1346583ba9d3157d)
|
|
samba-technical@samba.org. If
you do a tdb_set_max_dead(tdb, n), then for this tdb a delete operation will
only mark a record as dead and re-use it if a new record is created. The
parameter n allows for at most n dead records per hash chain. If this number
is exceeded, all dead records are put on the central freelist.
Volker
(This used to be commit 98a27ab28a3cd554e370a9a0e3652f4dea8749e9)
|
|
(This used to be commit afe7d7855841066b88859976ac748cbf438a9a9f)
|
|
Not as bad
as not doing it at all, but needs fixing. Also simplify the logic, I had
missed the "goto out" at the end of the function.
Volker
(This used to be commit ed30a0ff602d0a1d4409bee4faf12b6979b5f4b8)
|
|
succeeded. Found while testing the brlock seqnum patch.
Tridge, please check!
Volker
(This used to be commit e518c68fc5446304611d096ac2e3cab744734fc3)
|
|
in-memory
mirrors of the hash chain locks to a dynamically allocated one.
Jeremy, I count on you to revert it if the build farm freaks out, it's after
midnight here :-)
Volker
(This used to be commit 7b5db2e472c7e27231fa432d3930789e708abd09)
|
|
Should help us validate tdb's against corruption.
Jeremy.
(This used to be commit bd0710fa09799cb496b1f9f365c57c3b542445f3)
|
|
tdbutil.c is Samba specific, so should not be part of the generic tdb
library
(This used to be commit 979dd24f5e44605fc1603b690913b8c31be7478f)
|
|
(This used to be commit c9d9d79c34e8a36a6f684b173b1cc861330adc5c)
|
|
this is in preparation of a merge in the other direction
(This used to be commit db3211079fd594aa03c3b9bb3eb6ad86bdd32837)
|
|
call which does a read lock on all chains. These will be used to make
ldb searches more efficient
(This used to be commit de664ec1f8cf179f1d650563272c0de3f7636e2b)
|
|
(This used to be commit 025b142ff268498cfb36fc0e7e9e25a2c5963d38)
|
|
emacs compile mode (hint, paste to a file, and compile as "cat
filename").
This allowed me to fix nearly all the warnings for a IA_64 SuSE build
very quickly.
(This used to be commit eba6c84efff735bb0ca941ac4b755ce2b0591667)
|
|
- replacing rename() is pointless - all platforms have it (and the
#define of rename breaks some code)
- use system/locale.h in snprintf.c
- fix passwd.h for initgroups
- stdlib is in replace.h, not needed elsewhere
- fix the initgroups replacement
- fix mapping of dl functions to rep_*
(This used to be commit 57cd0ca176387d6a3acabf9fedeef4f2a3a3dad7)
|
|
isolation of our portability environment from the main code, and also
simplifies the includes system (no separate #ifdef _SAMBA_BUILD for
tdb. ldb etc now)
(This used to be commit 77d1a468e06290aba789e2f3affc769fc5159a21)
|
|
* Move dlinklist.h, smb.h to subsystem-specific directories
* Clean up ads.h and move what is left of it to dsdb/
(only place where it's used)
(This used to be commit f7afa1cb77f3cfa7020b57de12e6003db7cfcc42)
|