summaryrefslogtreecommitdiff
path: root/lib/tdb
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2010-02-17 15:01:07 +1030
committerRusty Russell <rusty@rustcorp.com.au>2010-02-17 15:01:07 +1030
commit1ab8776247f89b143b6e58f4b038ab4bcea20d3a (patch)
treeddd2ace8920416e67b47ef791df8a0b760c96371 /lib/tdb
parentd48c3e4982a38fb6b568ed3903e55e07a0fe5ca6 (diff)
downloadsamba-1ab8776247f89b143b6e58f4b038ab4bcea20d3a.tar.gz
samba-1ab8776247f89b143b6e58f4b038ab4bcea20d3a.tar.bz2
samba-1ab8776247f89b143b6e58f4b038ab4bcea20d3a.zip
tdb: remove num_locks
This was redundant before this patch series: it mirrored num_lockrecs exactly. It still does. Also, skip useless branch when locks == 1: unconditional assignment is cheaper anyway. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'lib/tdb')
-rw-r--r--lib/tdb/common/lock.c12
-rw-r--r--lib/tdb/common/tdb_private.h1
2 files changed, 2 insertions, 11 deletions
diff --git a/lib/tdb/common/lock.c b/lib/tdb/common/lock.c
index 19b92d9ae0..73d34417e7 100644
--- a/lib/tdb/common/lock.c
+++ b/lib/tdb/common/lock.c
@@ -277,12 +277,10 @@ int tdb_nest_lock(struct tdb_context *tdb, uint32_t offset, int ltype,
return -1;
}
- tdb->num_locks++;
-
tdb->lockrecs[tdb->num_lockrecs].off = offset;
tdb->lockrecs[tdb->num_lockrecs].count = 1;
tdb->lockrecs[tdb->num_lockrecs].ltype = ltype;
- tdb->num_lockrecs += 1;
+ tdb->num_lockrecs++;
return 0;
}
@@ -368,17 +366,12 @@ int tdb_nest_unlock(struct tdb_context *tdb, uint32_t offset, int ltype,
} else {
ret = tdb->methods->brunlock(tdb, ltype, offset, 1);
}
- tdb->num_locks--;
/*
* Shrink the array by overwriting the element just unlocked with the
* last array element.
*/
-
- if (tdb->num_lockrecs > 1) {
- *lck = tdb->lockrecs[tdb->num_lockrecs-1];
- }
- tdb->num_lockrecs -= 1;
+ *lck = tdb->lockrecs[--tdb->num_lockrecs];
/*
* We don't bother with realloc when the array shrinks, but if we have
@@ -712,7 +705,6 @@ void tdb_release_extra_locks(struct tdb_context *tdb)
tdb_brunlock(tdb, lck->ltype, lck->off, 1);
}
}
- tdb->num_locks = extra;
tdb->num_lockrecs = extra;
if (tdb->num_lockrecs == 0) {
SAFE_FREE(tdb->lockrecs);
diff --git a/lib/tdb/common/tdb_private.h b/lib/tdb/common/tdb_private.h
index 2e3c30f0ed..0ac37dfa5d 100644
--- a/lib/tdb/common/tdb_private.h
+++ b/lib/tdb/common/tdb_private.h
@@ -204,7 +204,6 @@ struct tdb_context {
struct tdb_logging_context log;
unsigned int (*hash_fn)(TDB_DATA *key);
int open_flags; /* flags used in the open - needed by reopen */
- unsigned int num_locks; /* number of chain locks held */
const struct tdb_methods *methods;
struct tdb_transaction *transaction;
int page_size;