X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=fsck.c;h=68e31078892e08edcd4fc7e193b5ebdbd9ccf54f;hb=c912c0e4598c5cfb2715f178a4f7cc681cf3253a;hp=29c4e2c7dc9d72d940dbb7c4298f24d84f3dcfc8;hpb=c1a4bb030717f2d2d209ccd8ab898ab66fa16869;p=osl.git diff --git a/fsck.c b/fsck.c index 29c4e2c..68e3107 100644 --- a/fsck.c +++ b/fsck.c @@ -407,13 +407,8 @@ static int check_index_ranges(struct osl_table *t) continue; ret = check_range(t, i, j); if (ret < 0) { - if (ret != -E_OSL_INVALID_OBJECT && - ret != -E_FSCK_RANGE_VIOLATION) + if (ret != -E_FSCK_RANGE_VIOLATION) goto err; - if (ret == -E_OSL_INVALID_OBJECT) { - CRIT_LOG("row %d, col %d maps to an " - "invalid object\n", i, j); - } ret = mark_row_invalid(t, i); if (ret < 0) goto err; @@ -517,14 +512,9 @@ static int check_for_invalid_objects(struct osl_table *t, uint32_t **lost_bytes) for (j = 0; j < t->num_rows; j++) { struct osl_object obj; ret = get_mapped_object(t, i, j, &obj); - if (ret >= 0) { - loss[i] -= obj.size + 1; /* add one for header byte */ - continue; - } - if (ret != -E_OSL_INVALID_OBJECT) + if (ret < 0) goto err; - CRIT_LOG("row %d, col %d points to an invalid " - "mapped object, bad\n", j, i); + loss[i] -= obj.size; } } ret = 0; @@ -754,7 +744,7 @@ static unsigned files_pruned; int prune_disk_storage_file(const char *path, void *private_data) { HASH_TYPE hash[HASH_SIZE]; - unsigned flags = *(unsigned *)private_data; + uint8_t flags = *(uint8_t *)private_data; struct osl_object obj = {.data = hash, .size = HASH_SIZE}; struct osl_row *row; int ret = -1; @@ -811,8 +801,9 @@ static int prune_disk_storage_files(struct osl_table *t) INFO_LOG("looking for unreferenced disk storage files\n"); FOR_EACH_DISK_STORAGE_COLUMN(i, t, cd) { char *dirname = column_filename(t, i); + uint8_t flags = t->desc->flags; ret = for_each_file_in_dir(dirname, prune_disk_storage_file, - (unsigned *)&t->desc->flags); + &flags); free(dirname); } if (files_pruned)