X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Flayout.c;h=38f79bfc5b250dea614aece8c57475a7aebd1c8e;hp=77ad1f8e12cc7dd27f2b69178e71226a003897a5;hb=c4ca9f54301c0367891be6330f59fdd5dcdd51d1;hpb=ed81f39468c4d9089310fb4950b09c1f5886c4ef diff --git a/ccan/tdb2/test/layout.c b/ccan/tdb2/test/layout.c index 77ad1f8e..38f79bfc 100644 --- a/ccan/tdb2/test/layout.c +++ b/ccan/tdb2/test/layout.c @@ -147,9 +147,10 @@ static void add_to_freetable(struct tdb_context *tdb, unsigned ftable, struct tle_freetable *freetable) { - tdb->ftable_off = freetable->base.off; - tdb->ftable = ftable; - add_free_record(tdb, eoff, sizeof(struct tdb_used_record) + elen); + tdb->tdb2.ftable_off = freetable->base.off; + tdb->tdb2.ftable = ftable; + add_free_record(tdb, eoff, sizeof(struct tdb_used_record) + elen, + TDB_LOCK_WAIT, false); } static tdb_off_t hbucket_off(tdb_off_t group_start, unsigned ingroup) @@ -205,7 +206,7 @@ static void add_to_hashtable(struct tdb_context *tdb, b_off = hbucket_off(group_start, bucket); if (tdb_read_off(tdb, b_off) == 0) { tdb_write_off(tdb, b_off, - encode_offset(eoff, bucket, h)); + encode_offset(eoff, in_group, h)); return; } } @@ -227,7 +228,8 @@ static struct tle_freetable *find_ftable(struct tdb_layout *layout, unsigned num } /* FIXME: Support TDB_CONVERT */ -struct tdb_context *tdb_layout_get(struct tdb_layout *layout) +struct tdb_context *tdb_layout_get(struct tdb_layout *layout, + union tdb_attribute *attr) { unsigned int i; tdb_off_t off, len, last_ftable; @@ -263,13 +265,13 @@ struct tdb_context *tdb_layout_get(struct tdb_layout *layout) /* Fill with some weird pattern. */ memset(mem, 0x99, off); /* Now populate our header, cribbing from a real TDB header. */ - tdb = tdb_open(NULL, TDB_INTERNAL, O_RDWR, 0, &tap_log_attr); - memcpy(mem, tdb->map_ptr, sizeof(struct tdb_header)); + tdb = tdb_open(NULL, TDB_INTERNAL, O_RDWR, 0, attr); + memcpy(mem, tdb->file->map_ptr, sizeof(struct tdb_header)); /* Mug the tdb we have to make it use this. */ - free(tdb->map_ptr); - tdb->map_ptr = mem; - tdb->map_size = off; + free(tdb->file->map_ptr); + tdb->file->map_ptr = mem; + tdb->file->map_size = off; last_ftable = 0; for (i = 0; i < layout->num_elems; i++) { @@ -311,7 +313,7 @@ struct tdb_context *tdb_layout_get(struct tdb_layout *layout) } } - tdb->ftable_off = find_ftable(layout, 0)->base.off; + tdb->tdb2.ftable_off = find_ftable(layout, 0)->base.off; /* Get physical if they asked for it. */ if (layout->filename) { @@ -319,7 +321,8 @@ struct tdb_context *tdb_layout_get(struct tdb_layout *layout) 0600); if (fd < 0) err(1, "opening %s for writing", layout->filename); - if (write(fd, tdb->map_ptr, tdb->map_size) != tdb->map_size) + if (write(fd, tdb->file->map_ptr, tdb->file->map_size) + != tdb->file->map_size) err(1, "writing %s", layout->filename); close(fd); tdb_close(tdb);