X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=osl.c;fp=osl.c;h=40b0a24f38bea36b2379836ee447f0e2923e726d;hb=53ef87d70bcddd1678edaeeeb5f4e0b0cb55c843;hp=b9c23393dddf8d68bbd447d692f5cfbdb3ef8ebc;hpb=8d549f29ee743cff2deaab5112dde797476f441f;p=osl.git diff --git a/osl.c b/osl.c index b9c2339..40b0a24 100644 --- a/osl.c +++ b/osl.c @@ -340,7 +340,7 @@ err: * Read the index header, check for the osl magic string and the table version * number. Read all information stored in the index header into \a desc. * - * \return Standard. + * \return The on-disk table version number on success, negative on errors. * * \sa struct osl_table_description, osl_create_table. */ @@ -406,7 +406,7 @@ int read_table_desc(struct osl_object *map, struct osl_table_description *desc) offset, header_size); goto err; } - return 1; + return table_version; err: FOR_EACH_COLUMN(i, desc, cd) free(cd->name); @@ -427,6 +427,7 @@ static int compare_table_descriptions(struct osl_table *t) ret = read_table_desc(&t->index_map, &desc); if (ret < 0) return ret; + t->version = ret; ret = -E_OSL_BAD_TABLE_FLAGS; if (desc.flags != t->desc->flags) goto out; @@ -496,7 +497,7 @@ static int create_table_index(struct osl_table *t) sprintf(buf + IDX_OSL_MAGIC, "%s", OSL_MAGIC); write_u8(buf + IDX_TABLE_FLAGS, t->desc->flags); write_u8(buf + IDX_DIRTY_FLAG, 0); - write_u8(buf + IDX_VERSION, CURRENT_TABLE_VERSION); + write_u8(buf + IDX_VERSION, t->version); write_u16(buf + IDX_NUM_COLUMNS, t->num_mapped_columns + t->num_disk_storage_columns); write_u16(buf + IDX_HEADER_SIZE, t->index_header_size); offset = IDX_COLUMN_DESCRIPTIONS; @@ -534,7 +535,8 @@ __export int osl_create_table(const struct osl_table_description *desc) if (ret < 0) return ret; - INFO_LOG("creating %s\n", desc->name); + t->version = CURRENT_TABLE_VERSION; + INFO_LOG("creating version %u table %s\n", t->version, desc->name); FOR_EACH_COLUMN(i, t->desc, cd) { if (cd->storage_type == OSL_NO_STORAGE) continue;