Browse Source

Remove inline_files_max and lfs_t entry for metadata_max

Will 5 years ago
parent
commit
37f4de2976
2 changed files with 9 additions and 26 deletions
  1. 9 16
      lfs.c
  2. 0 10
      lfs.h

+ 9 - 16
lfs.c

@@ -1589,7 +1589,8 @@ static int lfs_dir_compact(lfs_t *lfs,
         // for metadata updates.
         if (end - begin < 0xff &&
                 size <= lfs_min(lfs->cfg->block_size - 36,
-                    lfs_alignup(lfs->metadata_max/2,
+                    lfs_alignup((lfs->cfg->metadata_max ?
+                            lfs->cfg->metadata_max : lfs->cfg->block_size)/2,
                         lfs->cfg->prog_size))) {
             break;
         }
@@ -1674,7 +1675,8 @@ static int lfs_dir_compact(lfs_t *lfs,
                 .crc = 0xffffffff,
 
                 .begin = 0,
-                .end = lfs->metadata_max - 8,
+                .end = (lfs->cfg->metadata_max ?
+                    lfs->cfg->metadata_max : lfs->cfg->block_size) - 8,
             };
 
             // erase block to write to
@@ -1884,7 +1886,8 @@ static int lfs_dir_commit(lfs_t *lfs, lfs_mdir_t *dir,
             .crc = 0xffffffff,
 
             .begin = dir->off,
-            .end = lfs->metadata_max - 8,
+            .end = (lfs->cfg->metadata_max ?
+                lfs->cfg->metadata_max : lfs->cfg->block_size) - 8,
         };
 
         // traverse attrs that need to be written out
@@ -2966,7 +2969,9 @@ static lfs_ssize_t lfs_file_rawwrite(lfs_t *lfs, lfs_file_t *file,
     if ((file->flags & LFS_F_INLINE) &&
             lfs_max(file->pos+nsize, file->ctz.size) >
             lfs_min(0x3fe, lfs_min(
-                lfs->cfg->cache_size, lfs->inline_file_max))) {
+                lfs->cfg->cache_size,
+                (lfs->cfg->metadata_max ?
+                    lfs->cfg->metadata_max : lfs->cfg->block_size) / 8))) {
         // inline file doesn't fit anymore
         int err = lfs_file_outline(lfs, file);
         if (err) {
@@ -3537,18 +3542,6 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
     }
 
     LFS_ASSERT(lfs->cfg->metadata_max <= lfs->cfg->block_size);
-    lfs->metadata_max = lfs->cfg->metadata_max;
-    if (!lfs->metadata_max) {
-        lfs->metadata_max = lfs->cfg->block_size;
-    }
-
-    LFS_ASSERT(lfs->cfg->inline_file_max <= LFS_FILE_MAX);
-    lfs->inline_file_max = lfs->cfg->inline_file_max;
-    if (!lfs->inline_file_max) {
-        lfs->inline_file_max = lfs->cfg->block_size / 8;
-    } else if(lfs->inline_file_max == -1) {
-        lfs->inline_file_max = 0;
-    }
 
     // setup default state
     lfs->root[0] = LFS_BLOCK_NULL;

+ 0 - 10
lfs.h

@@ -262,14 +262,6 @@ struct lfs_config {
     // can help bound the metadata compaction time. Must be <= block_size.
     // Defaults to block_size when zero.
     lfs_size_t metadata_max;
-
-    // Optional upper limit on inline files in bytes. On devices with large
-    // blocks (e.g. 128kB) setting this to a low size or disabling inline files
-    // can help bound file read overhead. Must be <= LFS_FILE_MAX. Defaults to
-    // block_size/8 when zero.
-    //
-    // Set to -1 to disable inline files.
-    lfs_ssize_t inline_file_max;
 };
 
 // File info structure
@@ -420,8 +412,6 @@ typedef struct lfs {
     lfs_size_t name_max;
     lfs_size_t file_max;
     lfs_size_t attr_max;
-    lfs_size_t metadata_max;
-    lfs_ssize_t inline_file_max;
 
 #ifdef LFS_MIGRATE
     struct lfs1 *lfs1;