Răsfoiți Sursa

Merge pull request #584 from colin-foster-in-advantage/block_size_mount_fail

Fail mount when the block size changes
Christopher Haster 3 ani în urmă
părinte
comite
f40b854ab5
1 a modificat fișierele cu 14 adăugiri și 0 ștergeri
  1. 14 0
      lfs.c

+ 14 - 0
lfs.c

@@ -3769,6 +3769,20 @@ 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) {
+                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;
+            }
         }
 
         // has gstate?