1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-18 19:17:08 +03:00

42 Commits

Author SHA1 Message Date
Jeremy Allison
bda0f03fb3 Convert in_transaction to a bool. Add the same fix Volker
used for tdb_traverse() to tdb_traverse_read().
Jeremy.
2008-05-20 14:18:58 -07:00
Volker Lendecke
80e700e3bd Fix nesting tdb_traverse in a transaction
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
2008-05-20 21:59:44 +02:00
Andrew Tridgell
92503eb60e merge tdb changes from ctdb 2008-02-08 14:16:51 +11:00
Andrew Tridgell
eaba373747 merge growing tdb for tdb_wipe_all() fix from ctdb 2008-02-07 23:08:11 +11:00
Andrew Tridgell
1a1c795436 merged tdb transaction fix 2008-01-31 09:48:20 +11:00
Andrew Tridgell
8c89d60924 merged changes from v4-0-test 2008-01-18 15:46:15 +11:00
Volker Lendecke
e4f46d5274 Don't try ftruncate when the tdb is opened read-only
Tridge, Jeremy, please check!

Thanks,

Volker
2008-01-16 21:18:26 +01:00
Volker Lendecke
4f95c58040 Next try to fix the max dead record calculation 2008-01-16 21:04:52 +01:00
Volker Lendecke
625241c477 Fix some C++ warnings 2008-01-16 20:29:41 +01:00
Volker Lendecke
871cee04f2 Fix a missing prototype warning 2008-01-16 20:25:57 +01:00
Jeremy Allison
874425c8f6 Port from ctdb:
minor fix to transaction_write_existing: tridge.

Jeremy.
2008-01-15 17:20:50 -08:00
Andrew Tridgell
9f002eeff9 samba3 already has tdb_validate() 2008-01-14 16:26:52 +11:00
Andrew Tridgell
c91e9c785b merged tdb fix from ctdb tree 2008-01-14 15:38:43 +11:00
Volker Lendecke
4aaf4e7e73 Fix the max_dead_record calculations 2008-01-13 22:58:41 +01:00
Jeremy Allison
c6609c042b Sync tdb with the tdb changes in ctdb. Spoke to tridge about
this. Fixes insidious problem with order n^2 freelist merging.
Jeremy.
2008-01-11 15:08:37 -08:00
Volker Lendecke
2a5c53220a Fix the max_dead_record calculations 2008-01-09 23:24:30 +01:00
Volker Lendecke
223352e323 Add a warning for a potential bug I've run into 2007-11-28 09:45:40 -08:00
Volker Lendecke
89e2984a84 Add a missing prototype 2007-11-22 16:00:13 +01:00
Jeremy Allison
ecc2555197 Fix const warning.
Jeremy.
2007-11-06 23:09:31 -08:00
Jeremy Allison
ab11c00557 Keep the tdb code in sync with Samba4.
Mainly this is the svn changes :

------------------------------------------------------------------------
r23238 | tridge | 2007-05-30 01:15:49 -0700 (Wed, 30 May 2007) | 6 lines

merged transaction lock changes from ctdb

this ensures that having the global lock also implies the transaction
lock

------------------------------------------------------------------------
r22832 | tridge | 2007-05-13 18:00:06 -0700 (Sun, 13 May 2007) | 3 lines

merged the latest tdb changes from ctdb to Samba4

Jeremy.
2007-11-06 22:57:35 -08:00
Jeremy Allison
ef8da16983 Fix bug where tdb lock call interrupted with
an alarm sig would not terminate and could lead
to runaway smbd processes.
Thanks to Dave Daugherty @ Centrify for pointing
this out to us.
Jeremy.
2007-11-06 21:47:57 -08:00
Stefan Metzmacher
4f084efd6a offsetof() is always present as shown in some
libreplace testing.

metze
2007-10-12 10:06:27 +02:00
Gerald (Jerry) Carter
5c6c8e1fe9 [GLUE] Rsync SAMBA_3_2_0 SVN r25598 in order to create the v3-2-test branch. 2007-10-10 15:34:30 -05:00
Günther Deschner
579fb55b75 r24743: Fix build warning.
Guenther
2007-10-10 12:30:17 -05:00
Michael Adam
a3506f291a r24738: Fix one more use of pwrite in tdb code in the spirit of r23972 and r23977.
Michael
2007-10-10 12:30:16 -05:00
Jelmer Vernooij
4a5fa715a6 r24341: Make libreplace provide offsetof. 2007-10-10 12:29:31 -05:00
Jelmer Vernooij
26d1430283 r24340: Use standard data type uint32_t rather than tdb-specific u32. 2007-10-10 12:29:30 -05:00
Volker Lendecke
eabe796e46 r24049: Some more 64-bit warnings 2007-10-10 12:28:59 -05:00
Michael Adam
de0ef91346 r23980: Fix one more use of pwrite in expand_file.
Michael
2007-10-10 12:28:52 -05:00
Michael Adam
24fed55d72 r23979: Fix another occurence of (written != requested) as an
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
2007-10-10 12:28:51 -05:00
Michael Adam
5b8d53dfe1 r23977: Im prove the pwrite-patch to tdb_expand_file of r23972:
* 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
2007-10-10 12:28:51 -05:00
Michael Adam
e3af95f098 r23972: Fix a bug in pwrite error detection in tdb_expand_file():
The proper error condition is (ret == -1) instead of
(ret != number_of_byte_told_to_write).

Michael
2007-10-10 12:28:50 -05:00
Andrew Tridgell
c676a97114 r23798: updated old Temple Place FSF addresses to new URL 2007-10-10 12:28:26 -05:00
Andrew Tridgell
1b78cace50 r23790: LGPLv3+ conversion for our LGPLv2+ library code 2007-10-10 12:28:25 -05:00
Jeremy Allison
d7b39e4534 r23590: Fix realloc leak on failure case from Jim Meyering <jim@meyering.net>.
Jeremy.
2007-10-10 12:23:33 -05:00
Jeremy Allison
bf951e3d7f r23371: Fix the misleading comment I added - it really *should*
say "locks chain and returned record", not
"and returns record"
Jeremy.
2007-10-10 12:23:11 -05:00
Jeremy Allison
d0b6456763 r23370: Traverse in tdb wasn't consistently using the
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.
2007-10-10 12:23:10 -05:00
Volker Lendecke
945f73fa39 r23161: Add TDB_VOLATILE as open_flag to activate the per-hashchain dead record
optimization.
2007-10-10 12:22:50 -05:00
Stefan Metzmacher
56e31d60c6 r22317: add tdb_ prefix to non static function
metze
2007-10-10 12:19:26 -05:00
Stefan Metzmacher
f722fd32da r22316: merge from samba4:
this function should be static

metze
2007-10-10 12:19:26 -05:00
Stefan Metzmacher
1ca12b1c9e r22315: move tdbback.c content into tdbbackup.c
and make the functions static.

also use libreplace headers in tdbbackup.c

metze
2007-10-10 12:19:26 -05:00
Stefan Metzmacher
c7def92a9c r22249: move tdb code to lib/tdb/ as in samba4
metze
2007-10-10 12:19:22 -05:00