}
/* Finally, lock in order */
for (i = 0; i < number; i++)
- if (tdb_lock(tdb, i, F_WRLCK))
+ if (tdb_lock(tdb, BUCKET(tdb->lockedkeys[i+1]), F_WRLCK))
break;
/* If error, release locks we have... */
if (i < number) {
for ( j = 0; j < i; j++)
- tdb_unlock(tdb, j, F_WRLCK);
+ tdb_unlock(tdb, BUCKET(tdb->lockedkeys[j+1]), F_WRLCK);
SAFE_FREE(tdb->lockedkeys);
return TDB_ERRCODE(TDB_ERR_NOLOCK, -1);
}
if (!tdb->lockedkeys)
return;
for (i = 0; i < tdb->lockedkeys[0]; i++)
- tdb_unlock(tdb, tdb->lockedkeys[i+1], F_WRLCK);
+ tdb_unlock(tdb, BUCKET(tdb->lockedkeys[i+1]), F_WRLCK);
SAFE_FREE(tdb->lockedkeys);
}