Modified CTZ struct type to make space for erased files in the future

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.
This commit is contained in:
Christopher Haster
2018-08-07 09:57:54 -05:00
parent 7c70068b89
commit d8f930eeab

6
lfs.h
View File

@@ -104,9 +104,9 @@ enum lfs_type {
LFS_TYPE_HARDTAIL = 0x0c1, LFS_TYPE_HARDTAIL = 0x0c1,
LFS_TYPE_CRC = 0x0f0, LFS_TYPE_CRC = 0x0f0,
LFS_TYPE_INLINESTRUCT = 0x040, LFS_TYPE_DIRSTRUCT = 0x040,
LFS_TYPE_CTZSTRUCT = 0x041, LFS_TYPE_INLINESTRUCT = 0x041,
LFS_TYPE_DIRSTRUCT = 0x042, LFS_TYPE_CTZSTRUCT = 0x042,
// internal chip sources // internal chip sources
LFS_FROM_REGION = 0x000, LFS_FROM_REGION = 0x000,