diff --git a/lfs.c b/lfs.c index bd466b8..cbbc28b 100644 --- a/lfs.c +++ b/lfs.c @@ -3762,10 +3762,17 @@ static int lfs_rawmount(lfs_t *lfs, const struct lfs_config *cfg) { lfs->attr_max = superblock.attr_max; } - if ((superblock.block_count != lfs->cfg->block_count) || - (superblock.block_size != lfs->cfg->block_size)) - { - err = LFS_ERR_CORRUPT; + if (superblock.block_count != lfs->cfg->block_count) { + LFS_ERROR("Invalid block count (%"PRIu32" != %"PRIu32")", + superblock.block_count, lfs->cfg->block_count); + err = LFS_ERR_INVAL; + goto cleanup; + } + + if (superblock.block_size != lfs->cfg->block_size) { + LFS_ERROR("Invalid block size (%"PRIu32" != %"PRIu32")", + superblock.block_count, lfs->cfg->block_count); + err = LFS_ERR_INVAL; goto cleanup; } }