ret = get_mapped_object(t, dsnc, k, &obj);
if (ret < 0)
return ret;
- hash_object(&obj, hashes + k * HASH_SIZE);
+ hash_object(t, &obj, hashes + k * HASH_SIZE);
hash_obj.data = hashes + k * HASH_SIZE;
osl_add_row(hash_tree_table, &hash_obj);
ds_name = disk_storage_name_of_hash(t, hashes + k * HASH_SIZE);
static int fsck_init(struct osl_table_description *desc, struct osl_table **t)
{
struct osl_object map;
- int ret = map_index(desc, &map);
+ int version, ret = map_index(desc, &map);
if (ret < 0)
goto out;
- ret = read_table_desc(&map, desc);
+ ret = read_table_desc(&map, desc); /* checks table version */
if (ret < 0) {
osl_munmap(map.data, map.size);
goto out;
}
+ version = ret;
set_dummy_contents(desc);
ret = init_table_structure(desc, t);
if (ret < 0) {
osl_munmap(map.data, map.size);
goto out;
}
+ (*t)->version = version;
DEBUG_LOG("unmapping index\n");
osl_munmap(map.data, map.size);
if (OPT_GIVEN(FORCE))
ret = get_mapped_object(t, dsnc, row_num, &obj);
if (ret < 0)
return ret;
- hash_object(&obj, hash);
+ hash_object(t, &obj, hash);
ds_name = disk_storage_name_of_hash(t, hash);
FOR_EACH_DISK_STORAGE_COLUMN(i, t, cd) {
filename = disk_storage_path(t, i, ds_name);