-again:
- if (tdb_nest_lock(tdb, TDB_HASH_LOCK_START + list, ltype, waitflag))
- return TDB_OFF_ERR;
-
- if (can_change && unlikely(header_changed(tdb))) {
- tdb_off_t new = hash & ((1ULL << tdb->header.v.hash_bits) - 1);
- if (new != list) {
- tdb_nest_unlock(tdb, TDB_HASH_LOCK_START+list, ltype);
- list = new;
- goto again;
- }
- }
- return list;
+ return tdb_nest_lock(tdb, lock, ltype, waitflag);