tdb: remove num_locks
authorRusty Russell <rusty@rustcorp.com.au>
Wed, 17 Feb 2010 04:31:07 +0000 (15:01 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 17 Feb 2010 04:31:07 +0000 (15:01 +1030)
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>
lib/tdb/common/lock.c
lib/tdb/common/tdb_private.h

index 19b92d9ae09c63152b87d10062b1363a8c063516..73d34417e727196b56c1787f2b84bfc97a618d4e 100644 (file)
@@ -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);
index 2e3c30f0edac25609183a8469117f1a8e219736a..0ac37dfa5d0eef2ff27b01024c03c573b5c7f2b5 100644 (file)
@@ -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;