diff --git a/lfs.c b/lfs.c index ebfd695a..401c60a2 100644 --- a/lfs.c +++ b/lfs.c @@ -2264,7 +2264,7 @@ static int lfs_dir_relocatingcommit(lfs_t *lfs, lfs_mdir_t *dir, } } - if (dir->erased) { + if (dir->erased || dir->count >= 0xff) { // try to commit struct lfs_commit commit = { .block = dir->pair[0], @@ -2333,10 +2333,6 @@ static int lfs_dir_relocatingcommit(lfs_t *lfs, lfs_mdir_t *dir, lfs->gdisk = lfs->gstate; lfs->gdelta = (lfs_gstate_t){0}; - if(dir->count == 0x3ff) - { - goto compact; - } goto fixmlist; }