mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 00:32:38 +01:00 
			
		
		
		
	Fixed read cache amount based on hint and offset
Found by apmorton
This commit is contained in:
		
							
								
								
									
										9
									
								
								lfs.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								lfs.c
									
									
									
									
									
								
							| @@ -84,9 +84,12 @@ static int lfs_bd_read(lfs_t *lfs, | ||||
|         LFS_ASSERT(block < lfs->cfg->block_count); | ||||
|         rcache->block = block; | ||||
|         rcache->off = lfs_aligndown(off, lfs->cfg->read_size); | ||||
|         rcache->size = lfs_min(lfs_alignup(off+hint, lfs->cfg->read_size), | ||||
|                 lfs_min(lfs->cfg->block_size - rcache->off, | ||||
|                     lfs->cfg->cache_size)); | ||||
|         rcache->size = lfs_min( | ||||
|                 lfs_min( | ||||
|                     lfs_alignup(off+hint, lfs->cfg->read_size), | ||||
|                     lfs->cfg->block_size) | ||||
|                 - rcache->off, | ||||
|                 lfs->cfg->cache_size); | ||||
|         int err = lfs->cfg->read(lfs->cfg, rcache->block, | ||||
|                 rcache->off, rcache->buffer, rcache->size); | ||||
|         if (err) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user