Skip to content

Commit

Permalink
Modified CTZ struct type to make space for erased files in the future
Browse files Browse the repository at this point in the history
In v1, littlefs didn't trust blocks that were been previously erased and
conservatively erased any blocks before writing to them. This was a part
of the design since the beginning because of the complexity of managing
erased blocks when we can lose power at any time.

However, we theoretically could keep track of files that have been
properly erased by marking them with an "erased bit". A file marked this
way could be opened and appended to without needing to COW the last
block. The requirement would be that the "erased bit" is cleared during
a write, since a power-loss would require that littlefs no longer trust
the erased state of the file.

This commit just shuffles the struct types around to make space for an
"erased bit" in the struct type field to be added in the future. This
ordering also makes more sense, since there will likely be more file
representations than directory representations on disk.
  • Loading branch information
geky committed Oct 17, 2018
1 parent 7c70068 commit d8f930e
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions lfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,9 @@ enum lfs_type {
LFS_TYPE_HARDTAIL = 0x0c1,
LFS_TYPE_CRC = 0x0f0,

LFS_TYPE_INLINESTRUCT = 0x040,
LFS_TYPE_CTZSTRUCT = 0x041,
LFS_TYPE_DIRSTRUCT = 0x042,
LFS_TYPE_DIRSTRUCT = 0x040,
LFS_TYPE_INLINESTRUCT = 0x041,
LFS_TYPE_CTZSTRUCT = 0x042,

// internal chip sources
LFS_FROM_REGION = 0x000,
Expand Down

0 comments on commit d8f930e

Please sign in to comment.