mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
tdb: cleanup: always grab allrecord lock to infinity.
We were previously inconsistent with our "global" lock: the
transaction code grabbed it from FREELIST_TOP to end of file, and the
rest of the code grabbed it from FREELIST_TOP to end of the hash
chains. Change it to always grab to end of file for simplicity and
so we can merge the two.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from commit 9341f230f8
)
(This used to be ctdb commit 46f2c33357c999c31a8064c159c6162269c28d9d)
This commit is contained in:
parent
021b18c0dd
commit
4ae716d1e9
@ -449,9 +449,7 @@ static int _tdb_lockall(struct tdb_context *tdb, int ltype,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (tdb->methods->brlock(tdb, ltype,
|
||||
FREELIST_TOP, 4*tdb->header.hash_size,
|
||||
flags)) {
|
||||
if (tdb->methods->brlock(tdb, ltype, FREELIST_TOP, 0, flags)) {
|
||||
if (flags & TDB_LOCK_WAIT) {
|
||||
TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_lockall failed (%s)\n", strerror(errno)));
|
||||
}
|
||||
@ -486,8 +484,7 @@ static int _tdb_unlockall(struct tdb_context *tdb, int ltype, bool mark_lock)
|
||||
}
|
||||
|
||||
if (!mark_lock &&
|
||||
tdb->methods->brunlock(tdb, ltype,
|
||||
FREELIST_TOP, 4*tdb->header.hash_size)) {
|
||||
tdb->methods->brunlock(tdb, ltype, FREELIST_TOP, 0)) {
|
||||
TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_unlockall failed (%s)\n", strerror(errno)));
|
||||
return -1;
|
||||
}
|
||||
@ -688,8 +685,7 @@ void tdb_release_extra_locks(struct tdb_context *tdb)
|
||||
unsigned int i, extra = 0;
|
||||
|
||||
if (tdb->allrecord_lock.count != 0) {
|
||||
tdb_brunlock(tdb, tdb->allrecord_lock.ltype,
|
||||
FREELIST_TOP, 4*tdb->header.hash_size);
|
||||
tdb_brunlock(tdb, tdb->allrecord_lock.ltype, FREELIST_TOP, 0);
|
||||
tdb->allrecord_lock.count = 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user