Skip to content

Commit

Permalink
littlefs2: fix return code in case of corruption
Browse files Browse the repository at this point in the history
  • Loading branch information
Vincent Dupont authored and crasbe committed Apr 17, 2024
1 parent bebe21f commit 7f550ac
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions pkg/littlefs2/fs/littlefs2_fs.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,11 @@ static int _dev_write(const struct lfs_config *c, lfs_block_t block,
(void *)c, block, off, buffer, size);

uint32_t page = (fs->base_addr + block) * fs->sectors_per_block * mtd->pages_per_sector;
return mtd_write_page_raw(mtd, buffer, page, off, size);
int ret = mtd_write_page_raw(mtd, buffer, page, off, size);
if (ret == -EIO) {
ret = LFS_ERR_CORRUPT;
}
return ret;
}

static int _dev_erase(const struct lfs_config *c, lfs_block_t block)
Expand All @@ -95,7 +99,12 @@ static int _dev_erase(const struct lfs_config *c, lfs_block_t block)
DEBUG("lfs_erase: c=%p, block=%" PRIu32 "\n", (void *)c, block);

uint32_t sector = (fs->base_addr + block) * fs->sectors_per_block;
return mtd_erase_sector(mtd, sector, fs->sectors_per_block);}
int ret = mtd_erase_sector(mtd, sector, fs->sectors_per_block);
if (ret == -EIO) {
ret = LFS_ERR_CORRUPT;
}
return ret;
}

static int _dev_sync(const struct lfs_config *c)
{
Expand Down

0 comments on commit 7f550ac

Please sign in to comment.