]> git.tuebingen.mpg.de Git - osl.git/blobdiff - fsck.c
Merge branch 'refs/heads/t/sha3' into next
[osl.git] / fsck.c
diff --git a/fsck.c b/fsck.c
index f96f77c91fcc11327b12b605793e16b0fb966429..42312d9fb472463963b84b3fb93c7190a05ddc7c 100644 (file)
--- a/fsck.c
+++ b/fsck.c
@@ -718,7 +718,7 @@ static int check_disk_storage_presence(struct osl_table *t)
                ret = get_mapped_object(t, dsnc, i, &obj);
                if (ret < 0)
                        return ret;
-               hash_object(&obj, hashes + i * HASH_SIZE);
+               hash_object(t, &obj, hashes + i * HASH_SIZE);
                hash_obj.data = hashes + i * HASH_SIZE;
                osl_add_row(hash_tree_table, &hash_obj);
                ds_name = disk_storage_name_of_hash(t, hashes + i * HASH_SIZE);
@@ -872,21 +872,23 @@ static void set_dummy_contents(struct osl_table_description *desc)
 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))
@@ -1039,7 +1041,7 @@ static int dump_row(struct osl_table *t, unsigned row_num, const char *row_dir)
        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);