Fail mount when the block size changes

When the on-disk block size doesn't match the config block size, it is
possible to get file corruption. For instance, if the num blocks was
0x200 and we re-mount with 0x100 files could be corrupt.

If we re-mount with a larger number of blocks things should be safer,
but could be handled with a resize option or perhaps a mount flag to
ignore this parameter.
This commit is contained in:
Colin Foster
2021-07-21 08:56:21 -07:00
parent ead50807f1
commit 3efb8e44f3

6
lfs.c
View File

@@ -3761,6 +3761,12 @@ static int lfs_rawmount(lfs_t *lfs, const struct lfs_config *cfg) {
lfs->attr_max = superblock.attr_max; lfs->attr_max = superblock.attr_max;
} }
if (superblock.block_count != lfs->cfg->block_count)
{
err = LFS_ERR_CORRUPT;
goto cleanup;
}
} }
// has gstate? // has gstate?