mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 08:42:40 +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); |         LFS_ASSERT(block < lfs->cfg->block_count); | ||||||
|         rcache->block = block; |         rcache->block = block; | ||||||
|         rcache->off = lfs_aligndown(off, lfs->cfg->read_size); |         rcache->off = lfs_aligndown(off, lfs->cfg->read_size); | ||||||
|         rcache->size = lfs_min(lfs_alignup(off+hint, lfs->cfg->read_size), |         rcache->size = lfs_min( | ||||||
|                 lfs_min(lfs->cfg->block_size - rcache->off, |                 lfs_min( | ||||||
|                     lfs->cfg->cache_size)); |                     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, |         int err = lfs->cfg->read(lfs->cfg, rcache->block, | ||||||
|                 rcache->off, rcache->buffer, rcache->size); |                 rcache->off, rcache->buffer, rcache->size); | ||||||
|         if (err) { |         if (err) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user