X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb%2Flock.c;h=73d34417e727196b56c1787f2b84bfc97a618d4e;hp=19b92d9ae09c63152b87d10062b1363a8c063516;hb=5945c4dc1eed81c189b62612ca3c003a36e0c247;hpb=564427be4ef1615e0b386007f5adbcbc12887e24;ds=sidebyside diff --git a/ccan/tdb/lock.c b/ccan/tdb/lock.c index 19b92d9a..73d34417 100644 --- a/ccan/tdb/lock.c +++ b/ccan/tdb/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);