Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/littlefs-project/littlefs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Haster <chaster@utexas.edu>2019-07-16 23:55:29 +0300
committerChristopher Haster <chaster@utexas.edu>2019-07-16 23:55:29 +0300
commit52a90b8dccee821217d0baf7a4a466d4ca88c453 (patch)
treea6fb70c29d855659299195b6d08d593c782f6739
parente279c8ff9043ae50b9b34468eced7c199a4a71df (diff)
Added asserts on positive return values from block device functions
This has been a large source of porting errors, partially due to my fault in not having enough porting documentation, which is also planned. In the short term, asserts should at least help catch these types of errors instead of just letting the filesystem collapse after recieving an odd error code.
-rw-r--r--lfs.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lfs.c b/lfs.c
index 8ce1872..f7235f6 100644
--- a/lfs.c
+++ b/lfs.c
@@ -92,6 +92,7 @@ static int lfs_bd_read(lfs_t *lfs,
lfs->cfg->cache_size);
int err = lfs->cfg->read(lfs->cfg, rcache->block,
rcache->off, rcache->buffer, rcache->size);
+ LFS_ASSERT(err <= 0);
if (err) {
return err;
}
@@ -136,6 +137,7 @@ static int lfs_bd_flush(lfs_t *lfs,
lfs_size_t diff = lfs_alignup(pcache->size, lfs->cfg->prog_size);
int err = lfs->cfg->prog(lfs->cfg, pcache->block,
pcache->off, pcache->buffer, diff);
+ LFS_ASSERT(err <= 0);
if (err) {
return err;
}
@@ -170,7 +172,9 @@ static int lfs_bd_sync(lfs_t *lfs,
return err;
}
- return lfs->cfg->sync(lfs->cfg);
+ err = lfs->cfg->sync(lfs->cfg);
+ LFS_ASSERT(err <= 0);
+ return err;
}
static int lfs_bd_prog(lfs_t *lfs,
@@ -221,7 +225,9 @@ static int lfs_bd_prog(lfs_t *lfs,
static int lfs_bd_erase(lfs_t *lfs, lfs_block_t block) {
LFS_ASSERT(block < lfs->cfg->block_count);
- return lfs->cfg->erase(lfs->cfg, block);
+ int err = lfs->cfg->erase(lfs->cfg, block);
+ LFS_ASSERT(err <= 0);
+ return err;
}