diff --git a/lfs.c b/lfs.c index 5585b40..50fb9a4 100644 --- a/lfs.c +++ b/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; diff --git a/lfs.h b/lfs.h index 8a4b1d0..c7ec6d3 100644 --- a/lfs.h +++ b/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;