tdb: remove num_locks
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 22 Feb 2010 03:54:44 +0000 (14:24 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 22 Feb 2010 03:54:44 +0000 (14:24 +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>
ccan/tdb/lock.c
ccan/tdb/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;
        }
 
                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->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;
 }
 
        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);
        }
        } 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.
         */
 
        /*
         * 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
 
        /*
         * 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_brunlock(tdb, lck->ltype, lck->off, 1);
                }
        }
-       tdb->num_locks = extra;
        tdb->num_lockrecs = extra;
        if (tdb->num_lockrecs == 0) {
                SAFE_FREE(tdb->lockrecs);
        tdb->num_lockrecs = extra;
        if (tdb->num_lockrecs == 0) {
                SAFE_FREE(tdb->lockrecs);
index fe68d5116303630259fc9c31379035d77a8d046f..25ecca95248b999351924a58b2dcc1b4bd97a91b 100644 (file)
@@ -236,7 +236,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 */
        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;
        const struct tdb_methods *methods;
        struct tdb_transaction *transaction;
        int page_size;