mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 16:14:16 +01:00 
			
		
		
		
	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.
This commit is contained in:
		
							
								
								
									
										10
									
								
								lfs.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								lfs.c
									
									
									
									
									
								
							| @@ -92,6 +92,7 @@ static int lfs_bd_read(lfs_t *lfs, | |||||||
|                 lfs->cfg->cache_size); |                 lfs->cfg->cache_size); | ||||||
|         int err = lfs->cfg->read(lfs->cfg, rcache->block, |         int err = lfs->cfg->read(lfs->cfg, rcache->block, | ||||||
|                 rcache->off, rcache->buffer, rcache->size); |                 rcache->off, rcache->buffer, rcache->size); | ||||||
|  |         LFS_ASSERT(err <= 0); | ||||||
|         if (err) { |         if (err) { | ||||||
|             return 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); |         lfs_size_t diff = lfs_alignup(pcache->size, lfs->cfg->prog_size); | ||||||
|         int err = lfs->cfg->prog(lfs->cfg, pcache->block, |         int err = lfs->cfg->prog(lfs->cfg, pcache->block, | ||||||
|                 pcache->off, pcache->buffer, diff); |                 pcache->off, pcache->buffer, diff); | ||||||
|  |         LFS_ASSERT(err <= 0); | ||||||
|         if (err) { |         if (err) { | ||||||
|             return err; |             return err; | ||||||
|         } |         } | ||||||
| @@ -170,7 +172,9 @@ static int lfs_bd_sync(lfs_t *lfs, | |||||||
|         return err; |         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, | 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) { | static int lfs_bd_erase(lfs_t *lfs, lfs_block_t block) { | ||||||
|     LFS_ASSERT(block < lfs->cfg->block_count); |     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; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user