X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb%2Ftraverse.c;h=d329ef4da4030c095e530b0d7b05b344c2256305;hp=953edcf4479688ac3ccd859d23ffedd7d735ed23;hb=b3804e47471640f1f8c15f5013a78bdbeb12f69d;hpb=91ddc0b7f90986495f014217451361c07fdcd856 diff --git a/ccan/tdb/traverse.c b/ccan/tdb/traverse.c index 953edcf4..d329ef4d 100644 --- a/ccan/tdb/traverse.c +++ b/ccan/tdb/traverse.c @@ -32,7 +32,7 @@ /* Uses traverse lock: 0 = finish, TDB_NEXT_LOCK_ERR = error, other = record offset */ static tdb_off_t tdb_next_lock(struct tdb_context *tdb, struct tdb_traverse_lock *tlock, - struct list_struct *rec) + struct tdb_record *rec) { int want_next = (tlock->off != 0); @@ -140,12 +140,12 @@ static tdb_off_t tdb_next_lock(struct tdb_context *tdb, struct tdb_traverse_lock if fn is NULL then it is not called a non-zero return value from fn() indicates that the traversal should stop */ -static int _tdb_traverse(struct tdb_context *tdb, - tdb_traverse_func fn, void *private_data, - struct tdb_traverse_lock *tl) +static int tdb_traverse_internal(struct tdb_context *tdb, + tdb_traverse_func fn, void *private_data, + struct tdb_traverse_lock *tl) { TDB_DATA key, dbuf; - struct list_struct rec; + struct tdb_record rec; int ret = 0, count = 0; tdb_off_t off; @@ -226,10 +226,10 @@ int tdb_traverse_read(struct tdb_context *tdb, tdb->traverse_read++; tdb_trace(tdb, "tdb_traverse_read_start"); - ret = _tdb_traverse(tdb, fn, private_data, &tl); + ret = tdb_traverse_internal(tdb, fn, private_data, &tl); tdb->traverse_read--; - tdb_transaction_unlock(tdb); + tdb_transaction_unlock(tdb, F_RDLCK); return ret; } @@ -257,10 +257,10 @@ int tdb_traverse(struct tdb_context *tdb, tdb->traverse_write++; tdb_trace(tdb, "tdb_traverse_start"); - ret = _tdb_traverse(tdb, fn, private_data, &tl); + ret = tdb_traverse_internal(tdb, fn, private_data, &tl); tdb->traverse_write--; - tdb_transaction_unlock(tdb); + tdb_transaction_unlock(tdb, F_WRLCK); return ret; } @@ -270,7 +270,7 @@ int tdb_traverse(struct tdb_context *tdb, TDB_DATA tdb_firstkey(struct tdb_context *tdb) { TDB_DATA key; - struct list_struct rec; + struct tdb_record rec; tdb_off_t off; /* release any old lock */ @@ -302,7 +302,7 @@ TDB_DATA tdb_nextkey(struct tdb_context *tdb, TDB_DATA oldkey) { uint32_t oldhash; TDB_DATA key = tdb_null; - struct list_struct rec; + struct tdb_record rec; unsigned char *k = NULL; tdb_off_t off;